关于集合中List、Map、Set这三个集合简单总结如下:
- List:List和数组类似,可以动态增长,根据实际存储的数据的长度自动增长List的长度。查找元素效率高,插入删除效率低,因为会引起其他元素位置改变 <实现类有ArrayList,LinkedList,Vector>
- ArrayList:非线程安全,适合随机查找和遍历,不适合插入和删除。
- LinkedList : 非线程安全,适合插入和删除,不适合查找。
Vector : 线程安全。不过不推荐。
- Map:一个key到value的映射的类 。
- HashMap:非线程安全,键和值都允许有null值存在。
- TreeMap:非线程安全,按自然顺序或自定义顺序遍历键(key)。
- LinkedHashMap:非线程安全,维护一个双链表,可以将里面的数据按写入的顺序读出。写入比HashMap强,新增和删除比HashMap差。
- Hashtable:线程安全,键和值不允许有null值存在。不推荐使用。
ConcurrentHashMap:线程安全,Hashtable的升级版。推荐多线程使用。
- Set:不允许重复的数据 。检索效率低下,删除和插入效率高。
- HashSet: 非线程安全、无序、数据可为空。
- TreeSet: 非线程安全、有序、数据不可为空。
LinkedHashSet:非线程安全、无序、数据可为空。写入比HashSet强,新增和删除比HashSet差。