JAVA容器类类库用途“保存对象”,并划分为两个大的不用的概念。
1)Collection 一个独立元素的序列,这些元素都服从一条或多条规则。
List必须按照插入的顺序保存元素;(以特定的顺序保存一组元素),在Collection的基础上可以在List的中间插入 和删除元素。
contains()方法确定某个对象是否在列表中。(containsAll()方法)
remove()方法移除一个对象。
list.indexOf(元素) 来发现该对象在List中所处位置的索引编号
在List中间插入元素是可行的,add(索引号,元素)方法
subList()方法允许从较大的列表中创建出片段
list.retainAll(list2)方法,保留同时在两个list中的元素。
list.toArray()转换为数组
数组和list都是排好序的容器,但list能够自动扩充容量
ArrayList 善于随机访问元素,但在List的中间插入和移除元素比较慢。
LinkedList 快速的在List中间插入和移除元素,但在随机访问元素方面相对较慢。
Set不能有重复的元素;
HashSet 最快的获取元素方式
TreeSet 按比较结果升序保存存储对象
LinkedHashSet 按照被添加的顺序保存对象
Queue按照排队规则来确定对象产生的顺序(只允许在容器的一端插入对象,另一端删除对象)
队列和栈的行为有LinkedList提供支持
2)Map 一组成对的“键值对”对象,允许使用键来查找值。
HashMap 最快的查找技术,没有按照任何明显的顺序来保存元素
TreeMap 按照比较结果升序保存键
LinkedHashMap 按照插入顺序保存键,同时还保留了HashMap的查询速度
新程序中不应该使用过时的Vector、Hashtable、Stack