Java中常用集合效率比较
Posted jameszheng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中常用集合效率比较相关的知识,希望对你有一定的参考价值。
一 List
List继承collection,有序,元素可重复。
实现类:
ArrayList,数组方式实现的,是线程不安全的;Vector 是线程安全的;LinkedList 是线程不安全的,底层是由链表实现的 。
ArrayList与LinkedList在效率上有些互补,LinkedList进行插入和删除操作的速度是最快的,访问较慢,ArrayList进行随机访问的速度很快,插入较慢;
二 Set
Set继承collection,元素不能重复。
实现类:
HashSet,常用的set实现类,
LinkedHashSet,具有 HashSet 的查询速度,且内部使用链表维护元素的顺序 ( 插入的次序 ) 。于是在使用迭代器遍历 Set 时,结果会按元素插入的次序显示。
TreeSet,保存次序的 Set, 底层为树结构。
在插入、查找方面,HashSet 通常优于TreeSet. hashSet查询和删除和增加元素的效率都非常高.
三 Map
键值对的形式
实现类:
HashMap,线程不安全,key和value都能为空
Hashtable,线程安全,key和value都不能为空
LinkedHashMap ,类似于 HashMap ,但是迭代遍历它时,取得“键值对”的顺序是其插入次序,只比 HashMap 慢一点。而在迭代访问时发而更快。
四 迭代方式
1 传统的for循环遍历,基于计数器的:
在使用时,根据自己的需求选择合适的集合。
以上是关于Java中常用集合效率比较的主要内容,如果未能解决你的问题,请参考以下文章