一、介绍
1、集合组成
JAVA的集合框架中有两个基本的集合接口,Collection和Map。集合的常用接口和实现方式在java.util工具包下面。
(1)Collection:继承 Iterable接口,这个接口允许对象成为 "foreach" 语句的目标;Collection接口有比较实用的子接口:有序列表list 无序列表Set 和队列Queue。
List:有序列表,存储空间是有下标的,可以按位置存取。
Set:散列集合,存储空间没有下标。
(2)Map:键值对,根据键值K取V,键值K是唯一的。
2、初始值
注意集合的空和null是两回事。赋值为null则是null,new初始化了则是空。如
Map<String, String> map = new HashMap<String, String>();
if (map.isEmpty()) {
System.out.println(map);
}
if (map == null) {
System.out.println("aaa");
}
List<String> list = new ArrayList<>();
System.out.println(list);
输出
{}
[ ]
3、作用
集合是一个开发应用中非常常用的一些API,它们能够方便的进行各种数据结构的存储:
1)集合在空间的分配上比数组更好,集合会有更多的数据结构实现方式,但是集合也有要求比如它只能存储引用类型,基本类型就不可以
2)Collection接口是集合类的基础接口,它提供了对集合的数据操作的一些方法,Iterator接口可以进行迭代数据
3)List接口是一个有序的列表,它能够比集合多一些关于按位置的操作,其常用的实现类ArrayList类数组方式的实现、Vector类支持线程安全的类、LinkedList类链表的实现方式
4)泛型的引入,使集合能够在编译阶段就能进行类型的检查,这样会更加安全
5)Set接口是无序的集合接口,其实现类HashSet类、TreeSet类使用二叉树的方式可以保证数据的自然排序
6)映射接口Map可以有键值对,根据唯一的键值很方便的操作value,其实现类HashMap类、LinkedHashMap类、TreeMap类等特性也是值得回忆的。
二、集合api
集合的大小是可以改变,而且有很丰富的API。存储方式也比数组多。
(1)集合长度自动扩展,
(2)集合可以使用泛型指定存储类型,必须是引用类型,不能存储基本类型如int,
(3)集合的API比较丰富,比如add,remove,contains方法,
(4)集合接口有丰富的数据结构实现,
集合接口Collection: