JAVA 集合类汇总
一、集合与数组
数组(可以存储基本数据类型)是用来存现对象的一种容器,但是数组的长度固定,不适合在对象数量未知的情况下使用。
集合(只能存储对象,对象类型可以不一样)的长度可变,可在多数情况下使用。
二、层次关系
如图所示:图中,实线边框的是实现类,折线边框的是抽象类,而点线边框的是接口 image
==Collection== 接口是集合类的根接口,Java 中没有提供这个接口的直接的实现类。但是却让其被继承产生了两个接口,就是 ==Set 和 List==。==Set 中不能包含重复的元素。List 是一个有序的集合,可以包含重复的元素,提供了按索引访问的方式。==
==Map== 是 Java.util 包中的另一个接口,它和 Collection 接口没有关系,是相互独立的,但是都属于集合类的一部分。Map 包含了 key-value 对。==Map 不能包含重复的 key,但是可以包含相同的 value。==
==Iterator==,所有的集合类,都实现了 Iterator 接口,这是一个用于遍历集合中元素的接口,主要包含以下三种方法:
hasNext() 是否还有下一个元素。
next() 返回下一个元素。
remove() 删除当前元素。
三、几种重要的接口和类简介
List(有序、可重复)
List 里存放的对象是有序的,同时也是可以重复的,List 关注的是索引,拥有一系列和索引相关的方法,查询速度快。因为往 list 集合里插入或删除数据时,会伴随着后面数据的移动,所有插入删除数据速度慢。
Set(无序、不能重复)
Set 里存放的对象是无序,不能重复的,集合中的对象不按特定的方式排序,只是简单地把对象加入集合中。
Map(键值对、键唯一、值不唯一)
Map 集合中存储的是键值对,键不能重复,值可以重复。根据键得到值,对 map 集合遍历时先得到键的 set 集合,对 set 集合进行遍历,得到相应的值。
对比如下:
image
四、遍历
在类集中提供了以下四种的常见输出方式:
Iterator:迭代输出,是使用最多的输出方式。
ListIterator:是 Iterator 的子接口,专门用于输出 List 中的内容。
foreach 输出:JDK1.5 之后提供的新功能,可以输出数组或集合。
for 循环
代码示例如下:
for 的形式:for(int i=0;i