下面是学完Java集合后自己梳理出来的一些笔记,有什么不完善的地方还请大家指出来,一起总结一起进步
Java 中的集合:两大接口 collection和map
Collection 两个子接口 Set和List
List 是有序的集合,能精确地控制每一个元素的插入位置。三个直接实现类 LinkedList ArrayList Vector
LinkedList 内部由链表实现,没有实现同步,多个线程同时访问List需要自己解 决同步问题。由于是采用链表的实现,对数据的插入和删除会表现出较高的效率,但是对数据的查询和定位效率较低。
ArrayList 是采用一个可变的数组实现,对数据的插入删除效率较低,到时数据的查询和定位效率较高。
Vector 相对于ArrayList实现了同步的问题,它还有一个子类Stack栈,实现先进先出。
Set是一种不包含重复元素的集合,最多只能有一个NULL。
HashSet是用一张哈希表做数据存储,它是无序的,可以随机访问,是Set的最优性能实现。
TreeSet 实现了Set的一个子接口SortedSet,使用一棵红黑树来存储元素,被加入的元素必须实现comparable接口,插入时使用comparator进行排序。
使用Set集合时需要注意,当存储可变对象时,可能经过改变出现重复的元素,这从根本上违反了Set的不可重复的原则,Set的行为将变得不可预测。
Map 两个实现类HashMap HashTable
Map 提供Key-value的映射集合,key不能重复,value能重复
Hashmap不是同步的 Hashtable是同步的
注意:作为key的对象必须同时重写hashcod()和 equies()方法 |