集合和数组一样是一个容器。
1.集合和数组的区别
1)数组只能存放相同数据类型的元素,集合可以存储不同的数据类型的元素。
2)数组可以存储基本数据类型,又可以存储引用数据类型,集合只能存储引用数据类型。
3)数组的长度(length)是固定的,集合的长度(capacity)是可变的。
2.集合的体系结构
![](https://img.haomeiwen.com/i3911696/dc866d73c59fad66.png)
集合主要分为Collection体系和Map体系,Collection和Map都是各自体系的根接口,Collection是单元素集合,Map是双元素集合。
Collection又分为List体系和Set体系
List体系:存取顺序一致的,可重复的
Set体系:存取顺序不一致的,不可重复的
Map体系:Key值唯一的key-value对。
List又分为ArrayList、LinkedList、Vector
ArrayList:增删慢,查询快(底层基于数组的实现类,显式索引)--教室座位
LinkedList:增删快,查询慢(底层基于双向链表的实现类,隐式索引)--大小个排队
Vector:底层基于数组的实现类,线程安全,(增删慢,查询慢)
Set分为HashSet和TreeSet
HashList:无序的
TreeSet:可基于自定义顺序的,存储的类需要实现Comparable,并且重写compareTo( )方法。(也可以使用Comparator)
HashSet的子类加入链表功能
LinkedHashSet:存取顺序一致。
3.集合工具类Collections
Collections中的方法都是static修饰的,可以直接用Collections.method( )调用方法。
常用的方法:
static XXX synchronizedXXX(XXX<T> xxx)把当前List加同步锁变成线程安全的。XXX可以是List、Set、Map等。
static void sort(List<T> list)对当前List进行排序。
static void shuffle(List<T> list)对指定List进行随机置换
网友评论