list:有放入顺序,元素可以重复
set:无放入顺序,元素不可重复
map:键值对 map集合中的key无放入顺序,不可重复
list接口下有ArrayList LinkedList Vector
arraylist:有放入顺序,元素可以重复 底层为数组 有下标,所以适用于查询 ,线程不安全 速度快
linkedlist:有放入顺序,元素可以重复,底层为双向链表,无下标,适用于添加和删除,只需改变指针,不需要元素位移 线程不安全 速度快
vector:与arraylist相似,底层为数组 线程安全,速度慢
关于线程安全与否:
因为线程不安全的增删改查数据比较快,所以大多都选择了线程不安全的,对于线程不安全的集合可以通过Collections.synchrnized来变得线程安全
set:set:元素无放入顺序,元素不可重复,重复元素会被覆盖掉(元素虽然无放入顺序,但是元素在set中的位置室友
该元素的Hashcode决定的其位置时固定的,加入set的object必须定义equeals()方法,无下标遍历只能通过迭代
)
map:以键值对存储元素,key:无放入顺序,不可重复
map<key,map>:hashmap hashtable sortedmap
hashmap: 中的key相当于一个set集合
hashtable:properties(属性类,也是以key—value存储元素,但key—value只能是string类型)
sortedmap: treemap treemap的key就是一个treeSet