List接口:
ArrayList:数组集合,底层使用数组,查询快,增删慢
LinkedList:链表集合,底层使用链表形式,查询慢,增删快
注意:
对于随机访问get和set,ArrayList优于LinkedList,因为LinkedList要移动指针
对于新增和删除操作add和remove,LinkedList比较占优势,因为ArrayList要移动数据
Map:采用键值对的方式进行存值
key ----> value:两者一一对应
key使用Set集合进行存储 ----> 避免重复
TreeSet:有序,不重复
TreeMap:以key来排序
HashMap:为非synchronized,速度快
HashMap可以接受null键和值,而较早出的Hashtable则不能
原因:equlas()方法需要对象,因为HashMap是后出的API经过处理才可以
减少或者解决哈希冲突:①扰动函数 ②使用final修饰的对象,且采用合适的equals()和hashCode()方法 ③开放定址法