List,Map,Set三个接口存取元素时,各有啥特点
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了List,Map,Set三个接口存取元素时,各有啥特点相关的知识,希望对你有一定的参考价值。
参考技术A (一)List1、可以允许重复的对象。
2、可以插入多个null元素。
3、是一个有序容器,保持了每个元素的插入顺序,输出的顺序就是插入的顺序。
4、常用的实现类有 ArrayList、LinkedList
和
Vector。ArrayList
最为流行,它提供了使用索引的随意访问,而
LinkedList
则对于经常需要从
List
中添加或删除元素的场合更为合适。
(二)Set
1、不允许重复对象。
2、无序容器,你无法保证每个元素的存储顺序,TreeSet通过
Comparator
或者
Comparable。
3、只允许一个
null
元素。
4、Set
接口最流行的几个实现类是
HashSet、LinkedHashSet
以及
TreeSet。最流行的是基于
HashMap
实现的
HashSet。
(三)map
1、Map不是collection的子接口或者实现类。Map是一个接口。
2、Map
的
每个
Entry
都持有两个对象,也就是一个键一个值,Map
可能会持有相同的值对象但键对象必须是唯一的。
3.、TreeMap
也通过
Comparator
或者
Comparable
维护了一个排序顺序。
4.、Map
里你可以拥有随意个
null
值但最多只能有一个
null
键。
5、Map
接口最流行的几个实现类是
HashMap、LinkedHashMap、Hashtable
和
TreeMap。(HashMap、TreeMap最常用)。
扩展资料
list和set、map之间的转化方式:
1、list转成set集合
Set
studentSet=studentList.stream().map(Student::getId).collect(Collectors.toSet());
2、list转成map
Map
studentMap=studentList.stream().collect(Collectors.toMap(Student::getId,a
->
a,(k1,k2)->k1));
3、list转成map并且根据student中的name进行分组
Map<String,List>
group=studentList.stream().collect(Collectors.groupingBy(Student::getName));
参考资料:百度百科-java集合
以上是关于List,Map,Set三个接口存取元素时,各有啥特点的主要内容,如果未能解决你的问题,请参考以下文章