什么是Java的集合类?
Java的集合类位于java.util包下,是一种工具类,可以存储的具有共同属性的对象。
集合之间的层级关系
集合类主要有3个根接口:Collection、Map和Iterator。
1、Collection接口
Collection接口有两个主要的子接口List和Set
(1)List接口
List是一个有序集合,每一个元素都有它的索引,可通过索引来访问指定位置的元素。
List允许重复元素
(2)Set接口
Set是一个不允许有重复元素的集合。
Set的实现类有HastSet和TreeSet。HashSet底层通过HashMap实现的,TreeSet底层通过TreeMap实现。
2、Map接口
由一系列K-V组成的集合,提供了key到Value的映射。
(1)HashMap
内部定义了一个数组+链表的数据结构,元素通过哈希函数计算存放位置,如果位置有冲突,则在使用链表形式存储。
(2)LinkedHashMap
LinkedHashMap是HashMap的子类,它可以记录插入顺序。
(3)TreeMap
TreeMap 是一个有序的key-value集合,基于红黑树实现,每一个K-V是红黑树的一个节点。
TreeMap存储时会根据K来对K-V进行排序,排序方式分为自然排序和定制排序。
3、Iterator接口
Iterator是一个接口,它是集合的迭代器。集合可以通过Iterator去遍历集合中的元素。
ListIterator是一个功能更加强大的迭代器,它继承于Iterator接口,可双向移动(向前/向后遍历),但只能用于各种List类型集合。
java的集合框架有什么优点?
1、降低开发工作成本;
2、代码质量得到保障;
3、复用性和可操作性强。
Collection 和 Collections区别
Collection 是一个集合根接口,主要子接口有List和Set。
Collections是一个集合工具类