持有对象
泛型
1.简单来说 ArrayAlist
这部分偏向于介绍具体的操作,就简单写了;这种东西不写写,不可能记得住;
list
- ArayList,基本和数组一个模式,随机访问简单,插入删除比较麻烦
- LinkedList,链表嘛,肯定是插入删除简单,随机访问麻烦;
Iterator
1.可以简单的理解为,通过Iterator,我们可以将容器内的对象简单的取出来,进行一些操作12345678list l = new ArrayList();l.add("aa");l.add("bb");l.add("cc");for (Iterator iter = l.iterator(); iter.hasNext();) {String str = (String)iter.next();System.out.println(str);}
ListIterator
更加强大的子类型,只能用于各种List类的访问。
可以双向移动
可以产生相对于迭代器在列表中指向的当前位置的前一个和后一个元素的索引
listIterator()产生一个指向List开始处的ListIterator
listIterator(n)产生一个开始指向索引为n的元素处的ListIterator
Set
Set最常用的是测试归属性,可以很容易查询到某个元素是否在某个Set中,因此查找变成最重要的操作,选择使用HashSet的实现,专门对快速查找进行了优化。
Set和Collection有完全相同的接口。
TreeSet将元素存储在红黑树数据结构中
HashSet用的是散列函数
LinkedHashSet因为查询速度的原因也使用了散列,但是却用了链表来维护元素的插入顺序
map
键值映射
Queue
队列是一个典型的“先进先出”(FIFO)容器。
LinkedList提供了方法支持队列的行为,并且实现了Queue接口,因此LinkedList可以用作Queue的一种实现,可以向上转型为Queue类型来使用。
PriorityQueue
优先级队列声明下一个弹出元素是最需要的元素(优先级最高)。
可以通过构造器设置优先级规则(Collections类内有部分定义的规则)。