java 集合(list、set、map)的特点
来源:互联网 发布:什么照相软件好 编辑:程序博客网 时间:2024/05/17 14:20
集合相关的类有一大堆,一般也只用到常用的方法增删改查,而且它它们的方法名也基本一样,所以一直都不知道什么时候用什么集合,
今天趁有空特意从网上整理资料方便日后回忆。
一、List:、有顺序以线性方式存储,可以存放重复对象
线程安全方法:List list = Collections.synchronizedList(new LinkedList(...));
LinkedList:双向链表实现存储 索引数据慢插入数度较快 线程不安全(比安全性能好)
ArrayList:数组方式存储数据 索引数据快插入数据慢 线程不安全
Vector:数组方式存储数据 索引数据快插入数据慢 线程安全
Stack:继承自Vector,实现一个后进先出的堆栈
二、Set:无顺序,不包含重复的元素
HashSet:为快速查找设计的Set。存入HashSet的对象必须定义hashCode()。
TreeSet: 保存次序的Set, 底层为树结构。使用它可以从Set中提取有序的序列。
LinkedHashSet:具有HashSet的查询速度,且内部使用链表维护元素的顺序(插入的次序)。于是在使用迭代器遍历Set时,结果会按元素插入的次序显示。
三、Map:键必须是唯一
同步方法:Map m = Collections.synchronizedMap(new TreeMap(...));
Hashtable:基于散列表的实现 允许空键空值 线程安全
HashMap:基于散列表的实现 允许空键空值 线程不安全 (与Hashtable基本一致)
TreeMap: 基于红黑树数据结构的实现 不允许空键空值 线程不安全
WeakHashMap:改进的HashMap,它对key实行“弱引用”,如果一个key不再被外部所引用,那么该key可以被GC回收。
在除需要排序时使用TreeSet,TreeMap外,都应使用HashSet,HashMap,因为他们的效率更高。
四、SparseArray<E>:采用了二分法方式存储数据(安卓的一个集合类)
android系统建议我们用SparseArray<E>来代替HashMap<Integer, E>
SparseArray的使用基本与List一样
转自http://www.cnblogs.com/Mr-Mo/archive/2015/07/01/4612769.html
- java 集合(list、set、map)的特点
- java 集合(list、set、map)的特点
- Java集合框架List、Map、Set特点
- java 集合(list、set、map)的特点 集合相关的类有一大堆
- Java中List、Set、Map的特点
- Java集合框架中list.set.map特点
- 利用Set List Map集合的特点处理重复字符串
- Java集合(list,Set,Map)集合
- JAVA集合的认识[Set,List,Map]
- java集合框架(List、Set、Map)
- java 数据集合(set、map、list)
- java 集合(Map, Set, List)
- java 集合(set、list、map、stack、queue)的用法
- Java中的Set List Map 的各自特点
- Java中的Set,List,Map的特点以及排序技巧
- JAVA Map、Set、List、Queue、Stack的特点与用法
- java集合 set list map
- [java]集合 list set map
- FTP服务器搭建的几种方式<二>
- 对初学LoadRunner朋友们的一些建议
- Qt之动态语言切换
- jieba完整文档
- Exercising the Firewall using C++
- java 集合(list、set、map)的特点
- hadoop(三):hdfs 机架感知
- Kubernetes之kubectl常用命令使用指南:1:创建和删除
- Android更新UI的四种方法详解
- jQuery检测判断复选框是否被选中了的几种方法
- 手机k歌高分必备神器——BBS掌中宝Q1
- Python3 爬虫 1
- Android ROM移植相关/内核学习
- C++静态库与动态库详解与使用