集合分类
java集合主要主要分为Collection和Map两大类:
Collection
1.Collection:是单列集合的顶层父类,是一个独立元素的序列,这些个元素都服从一条或者多条规则。即Collection分为List和Set两大分支。List必须按照插入的顺序保存元素,而Set不能有重复的元素。
1)List集合是一个有序的队列,每一个元素都有他的索引。第一个元素的索引值为0。 List的实现类有LinkedList、ArrayList、Vector、Stack。
2)Set集合是一个不允许有重复元素的集合。
List
下面有ArrayList,LinkedList,Vector,集合的的最大目的就是为了存取;
1、List集合的特点就是存取有序,可以存储重复的元素,可以用下标进行元素的操作。
ArrayList: 底层是使用数组实现,所以查询速度快,增删速度慢。
LinkedList:是基于链表结构实现的,所以查询速度慢,增删速度快,提供了特殊的方法,对头尾的元素操作(进行增删查),使用LinkedList来实现栈和队列;栈是先进后出,而队列是先进先出。
Vector:因为已经过时,被ArrayList取代了;它还有一种迭代器通过vector.elements()获取,判断是否有元素和取元素的方法为:hasMoreElements(),nextElement()。、
Set
Set集合是一个不允许有重复元素的集合。Set的实现类有HashSet、TreeSet。
HashSet依赖于HashMap,他实际上是通过HashMap实现的。
TreeSet依赖 于TreeMap,他实际是通过TreeMap实现的。
Map
1.Collection :是双列集合的顶层父类接口,是一个映射接口,即key-Value键值对。允许使用键来查找对应的值,从某种意义上来说,他将数字和对象关联在一起。Map中的每一个元素包含"key"和"key对应的value"。
1)AbstractMap是一个抽象类,它实现了Map接口中的大部分API。二HashMap、TreeMap、WeakHashMap都是继承了AbstractMap。Hashtable虽然继承与Dictionary,但是他实现了Map接口。
2) 再看看迭代器Iterator
Iterator通常被称为轻量级对象,创建它的代价很小,它是遍历集合的工具,即我们通常通过Iterator迭代器来遍历集合。我们说Collection依赖于Iterator,是因为Collection的实现类都要实现iterator()函数,返回一个Iterator对象。