java集合框架

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java集合框架相关的知识,希望对你有一定的参考价值。

Java集合框架--参照博客园优秀文章整理

一、概述:

位于 java.util 这个包下,Java集合框架就是一套工具,它把常用的数据结构和算法集合在一起,让我们能更轻松地、更高效地处理数据。

集合中只能保存对象(保存对象的引用变量)。(数组既可以保存基本类型的数据也可以保存对象)。

当我们把一个对象放入集合中后,系统会把所有集合元素都当成Object类的实例进行处理。从JDK1.5以后,这种状态得到了改进:可以使用泛型来限制集合里元素的类型,并让集合记住所有集合元素的类型

Java的集合框架主要由两个接口派生而出:Collection和Map,Collection和Map是Java集合框架的根接口,这两个接口又包含了一些接口或实现类。即Java中容器分两类,一种是单值的Collection,一种是储存键-值对的Map

注:

Set、List和Map可以看做集合框架的三大接口。

     List集合是有序集合,集合中的元素可以重复,访问集合中的元素可以根据元素的索引来访问。

     Set集合是无序集合,集合中的元素不可以重复,访问集合中的元素只能根据元素本身来访问(也是不能集合里元素不允许重复的原因)。

     Map集合中保存Key-value对形式的元素,访问时只能根据每项元素的key来访问其value。

对于Set、List和Map三种集合,最常用的实现类分别是HashSet、ArrayList和HashMap三个实现类。

二、Collection接口

 

Collection: Set和List接口是Collection接口派生的两个子接口。即单一个体组成的集合,每个单位只能包含一个元素。

 

技术分享

 

 

 

Collection基本操作:

增加元素add(Object obj); addAll(Collection c);  

删除元素 remove(Object obj); removeAll(Collection c); 

求交集 retainAll(Collection c);  

删除元素 remove(Object obj); removeAll(Collection c); 

求交集 retainAll(Collection c);  

访问/遍历集合元素的好办法是使用Iterator接口(迭代器用于取代Enumeration)

技术分享
1 Public interface Iterator{ 
2     Public Boolean hasNext(}; 
3     Public Object next(}; 
4     Public void remove(}; 
5 
6 }  
View Code

集set 
--没有重复项目的集合  

(常用有两种:HashSet和TreeSet,其内部实现是一个Map,它的元素就相当于Map中的Key,而Value是一个Object常量,所有对Set的操作都被最终转嫁为对Map的操作)

HashSet-基于散列表的集,加进散列表的元素要实现hashCode()方法  

清单List 

--位置性集合。加进清单的元素可以加在清单中特定位置或加到末尾  

ArrayList:数据列表,其实就是封装了一个数组,因此它的访问速度极快

ArrayList类似于Vector,都用于缩放数组维护集合。

ArrayList和Vector区别:

(1)同步性:Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的 
(2)数据增长:当需要增长时,Vector默认增长为原来一培,而ArrayList却是原来的一半 

LinkedList:内部实现是带头结点的双向链表,适合于在链表中间需要频繁进行插入和删除操作 

用在FIFO,用addList()加入元素 removeFirst()删除元素
用在FILO,用addFirst()/removeLast()  

Map: Map实现类用于保存具有映射关系的数据(key-value)。即一对有关联的个体组成的集合,每个单位都是一对相关联的元素。

 

三、Map接口

映射表Map  

--用于关键字/数值对,像个Dictionary  

技术分享

 

处理Map的三种集合  

关键字集KeySet()  

数值集value() 

项目集enrySet()  

四个具体版本

HashMap-散列表的通用映射表 

LinkedHashMap-扩展HashMap,对返回集合迭代时,维护插入顺序  

WeakHashMap-基于弱引用散列表的映射表,如果不保持映射表外的关键字的引用,则内存回收程序会回收它 

TreeMap-基于平衡树的映射表   

四、相关知识:

迭代器(Iterator)

提供一种方法访问一个容器(container)对象中各个元素,而又不需暴露该对象的内部细节。

对于遍历一个容器中所有的元素,Iterator模式是首选的方式

Collection定义了Iterator<E> iterator()方法,子类都各自实现了该方法,我们直接调用即可

Map中虽没有定义,我们可以利用map.entrySet()的iterator()方法

 

以上是关于java集合框架的主要内容,如果未能解决你的问题,请参考以下文章

java集合框架代码演示demo

java集合框架代码演示demo

Java 集合框架

代码片段 - Golang 实现集合操作

laravel特殊功能代码片段集合

Java集合框架