Map,List,Array,Set之间的关系是什么,分别适用于哪些场景,集合大家族还有哪些常见的类?

分享人:杨若曦

目录

1.背景介绍

2.知识剖析

3.常见问题

4.解决方案

5.编码实战

6.扩展思考

7.参考文献

8.更多讨论

1.背景介绍


java结合类中主要派生出两个接口 Collection 和 Map;
关系图如下:

SET:程序可以依次吧多个对象放入到set集合中,而set不能记住元素的添加顺序;
set集合和collection基本相同,没有提供额外的方法;
set集合不允许相同的元素,如果添加相同元素,返回false

List:代表的是一个元素有序,可以重复的添加到集合中,每个元素对应一个索引;
list集合是程序中使用最多的集合之一,相对set集合来说,最大的优点就是可以快速的取到相应的值

Map: 用于保存具有映射关系的数据,Map集合中保存的两组值,一组保存的是Key,一组保存的是Value;
Key - value一一对应,key不可以重复,value可以重复;

2.知识剖析

set集合的具体实现
HashSet:set集合最常用的实现类,主要有以下特点:1.不能保证元素的顺序;2.线程不安全,
LinkedHashSet : HashSet的子类,可以解决HashSet没有排序的问题;
TreeSet : 自动排序的set集合
list集合的具体实现
ArrayList : 基于数组实现的一个集合,
Vector : 古老的一个集合类;
LinkedList : 双向链表,可以实现堆和栈的功能;
map集合的具体实现:
HashMap : 底层实现为数组 + 链表 + 红黑树 ;最常使用的实现类;
HashTable : 古老的方法 ;
LinkedHashMap : 使用双向链表来维护key中的数据

3.常见问题

各个集合之间的使用场景

4.解决方案

对于set集合来说 : 一般情况下都使用HashSet ,当频繁对集合进行插入删除操作的时候,可以使用LinkedHashSet;
对于list集合来说 : 一般情况都会使用ArrayList, 当频繁进行插入 删除的操作的时候,可以使用LinkedList
对于Map集合来说 : 一般情况下会使用HashMap,

5.编码实战

6.扩展思考

7.参考文献

参考:
相关博客

8.更多讨论

感谢大家观看

BY : 杨若曦