集合
在面向对象编程中,我们常常需要把多个对象按照一定的结构存储起来,这就需要使用到集合。
集合框架的三大接口
Collection 接口 : 是一组允许重复的对象。
Map接口 : 是一组成对的键-值对象,即所持有的是key-value pairs。Map中不能有重复的key。拥有自己的内部排列机制
Iterator接口 : 遍历集合的迭代接口
collection 接口
Collection接口是集合框架中的顶级接口,用来保存单独的对象,它又有三个子接口List、Set、Queue;它是一个泛型接口。
List
List 接口继承 Collection,允许重复,以元素安插的次序来放置元素,不会重新排列,并允许包括 null 在内的所有元素;List接口有两个实现类ArrayList和LinkedList。
ArrayList
每个 ArrayList 实例都有一个容量。该容量是指用来存储列表元素的数组的大小。它总是至少等于列表的大小。随着向 ArrayList 中不断添加元素,其容量也自动增长
LinkedList
List 接口的链接列表实现。实现所有可选的列表操作,并且允许所有元素(包括 null)。除了实现 List 接口外,LinkedList 类还为在列表的开头及结尾 get、remove 和 insert 元素提供了统一的命名方法。这些操作允许将链接列表用作堆栈、队列或双端队列。
Set
Set中所存储的元素是不重复的,但是是无序的,也就是Set中的元素是没有索引的;Set也有两个实现类,HashSet和TreeSet。
HashSet
此类实现 Set 接口,由哈希表(实际上是一个 HashMap 实例)支持。它不保证 set 的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用 null 元素。
TreeSet
使用元素的自然顺序对元素进行排序,或者根据创建 set 时提供的 Comparator 进行排序,具体取决于使用的构造方法。此类不允许使用null元素。
Queue
一种特殊的线性表,它只允许在表的前端进行删除操作,而在表的后端进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。可以实现先进先出;
Map接口
Map是另外一个顶级接口,用来保存键值对Map《key,Value》,key值是不允许重复的 ;Map和Collection的区别就是,Map存的是一对一对的数据,Collection存的是一个一个的数据;它的两个实现类TreeMap和HashMap。
TreeMap
TreeMap中所有的元素都保持着某种固定的顺序,如果需要得到一个有序的Map就应该使用TreeMap。
HashMap
HashMap通过hashcode对其内容进行快速查找, HashMap中元素的排列顺序是不固定的。
Iterator
实际应用中,常常需要对集合元素进行迭代,Iterator接口提供了迭代集合对象的功能,是一个泛型接口.。
hasNext();此方法用来判断被迭代的集合中是否存在元素。
next();返回集合中的当前元素。