Java集合框架为我们提供了一套性能优良、使用方便的接口和类,它们都位于java.util包中。
集合框架包含了:对外的接口、接口的实现、和对集合运算的算法。Java集合框架中的两大类接口:Collection和Map,其中Collection又有两个子接口:List和Set。
(一般又称为Java集合框架共有3大类接口:List、Set和Map)。
Collection接口存储一组不唯一(允许重复)、无序的对象。
Set接口继承Collection接口,存储一组唯一(不允许重复)、无序的对象。
List接口继承Collection接口,存储一组不唯一(允许重复)、有序(以元素插入的次序
来放置元素,不会重新排列)的对象。
实现List接口的常用类有ArrayList和LinkedList。
ArrayList对数组进行了封装,实现了长度可变的数组。优点在于遍历元素和随机访问
元素的效率比较高。
LinkedList采用链表存储方式,优点在于插入、删除元素时效率比较高。
Map中的key不要求有序,允许重复。value同样不要求有序,允许重复。
所有集合接口和类都没有提供相应的遍历方法,而是把遍历交给迭代器Iterator完成。
Collection接口的iterate()方法返回一个Iterator,然后通过Iterator接口的两个方法即可
方便的实现遍历。
boolean hasNext():判断是否存在另一个可访问的元素。
Object next():返回要访问的下一个元素。
数组和集合的主要区别:
1.数组可以存储基本数据类型和对象;而集合中只能存储对象。
2.数组长度固定;集合长度可以动态改变。
3.定义数组时必须指定数组元素类型;集合默认其中所有元素都是Object 。
4.无法直接获取数组实际存储的元素个数,length用来获取数组的长度;但可以
通过size()直接获取集合实际存储的元素个数。
5.集合有多种实现方式和不同的适用场合,而不像数组仅才用分配连续空间方式。
6.集合以接口和类的形式存在,具有封装、继承和多态等类的特性,通过简单的
方和属性调用即可实现各种复杂操作,大大提高了软件的开发效率。
7.JDK中有一个Arrays类,专门用来操作数组,他提供一系列静态方法实现对数组
搜索、排序、比较和填充等操作。JDK中有一个Collections类,专门用来操作
集合,他提供一系列静态方法实现对各种集合搜索、排序、比较和填充等操作。