Map,List,Array,Set之间的关系是什么,分别适用于哪些场景,集合大家族还有哪些常见的类?
分享人:杨若曦
目录
1.背景介绍
2.知识剖析
3.常见问题
4.解决方案
5.编码实战
6.扩展思考
7.参考文献
8.更多讨论
java结合类中主要派生出两个接口 Collection 和 Map;
关系图如下:
SET:程序可以依次吧多个对象放入到set集合中,而set不能记住元素的添加顺序;
set集合和collection基本相同,没有提供额外的方法;
set集合不允许相同的元素,如果添加相同元素,返回false
List:代表的是一个元素有序,可以重复的添加到集合中,每个元素对应一个索引;
list集合是程序中使用最多的集合之一,相对set集合来说,最大的优点就是可以快速的取到相应的值
Map: 用于保存具有映射关系的数据,Map集合中保存的两组值,一组保存的是Key,一组保存的是Value;
Key - value一一对应,key不可以重复,value可以重复;
set集合的具体实现
HashSet:set集合最常用的实现类,主要有以下特点:1.不能保证元素的顺序;2.线程不安全,
LinkedHashSet : HashSet的子类,可以解决HashSet没有排序的问题;
TreeSet : 自动排序的set集合
list集合的具体实现
ArrayList : 基于数组实现的一个集合,
Vector : 古老的一个集合类;
LinkedList : 双向链表,可以实现堆和栈的功能;
map集合的具体实现:
HashMap : 底层实现为数组 + 链表 + 红黑树 ;最常使用的实现类;
HashTable : 古老的方法 ;
LinkedHashMap : 使用双向链表来维护key中的数据
对于set集合来说 : 一般情况下都使用HashSet ,当频繁对集合进行插入删除操作的时候,可以使用LinkedHashSet;
对于list集合来说 : 一般情况都会使用ArrayList, 当频繁进行插入 删除的操作的时候,可以使用LinkedList
对于Map集合来说 : 一般情况下会使用HashMap,