List
List是一个不唯一有序的集合。
实现类:
ArrayList:
底层结果是数组,所以查询快,增删慢,线程不安全。
Vector:
底层结果是数组,查询快,增删慢,线程安全。
Linkedlist
底层结果是双向链表,查询慢,增删快,线程不安全。
Set
Set是一个唯一无序的集合。
实现类:
HashSet:
hashset其实是hashmap的一个实例,都是一个存放链表的数组,允许有null元素,hashset中的元素都存放在hashmap中的key上面,value是一个固定对象,hashset中的add()方法其实调用的是底层的hashmap中的put()方法,而如果是在HashMap中调用put,首先会判断key是否存在,如果key存在则修改value值,如果key不存在就插入这个key-value。而在set中,因为value值没有用,也就不存在修改value值的说法,因此往HashSet中添加元素,首先判断元素(也就是key)是否存在,如果不存在这插入,如果存在就不插入,这样HashSet中就不存在重复值。总结:无序,唯一,线程不安全,允许null值。