您的位置:首页 > 编程语言 > Java开发

第七章 常用Java集合类总结

2016-01-08 11:17 239 查看
7.1、List(允许重复元素)

ArrayList:

底层数据结构:Object[]

查询(get)、遍历(iterator)、修改(set)使用的比较多的情况下,用ArrayList

可扩容,容量无限

LinkedList

底层数据结构:环形双向链表

增加(add)、删除(remove)使用比较多的情况下,用LinkedList

链表,容量无限

说明:

1)add(E e):在数组末尾插入元素,ArrayList需要考虑扩容问题,一旦扩容就要进行数组复制,LinkedList不需要;

2)add(int index):在数组中间插入元素,ArrayList需要考虑将该index及其后的数组元素全部复制后移一位,LinkedList不需要

7.2、Set(不允许重复元素,所以可用于去重操作)

HashSet:

底层数据结构:HashMap

可看做容量无限

TreeSet:

底层数据结构:TreeMap

容量无限

7.3、Map(key-value)

HashMap:

底层数据结构:链表数组

可扩容,且最大容量极大,可看做容量无限

TreeMap:

底层数据结构:红黑树

可以实现按key排序(在使用中,要么使用TreeMap(Comparator),要么让key对象实现Comparable)

红黑树,容量无限

注意:

以上全部线程不安全

对于查找和删除较为频繁,且元素数量较多(元素数量>100)的情况下,Set和Map性能要比List好一些(单线程情况下)

上边第二个结论是在《分布式Java基础:应用与实践》一书中,林昊通过一系列的测试结果得出的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: