List,Map,Set三个接口存取元素时,各有什么特点?

如题所述

    List特点:元素有放入顺序,元素可重复 Set特点:元素无放入顺序,元素不可重复(注意:元素虽然无放入顺序,但是元素在set中的位置是有该元素的HashCode决定的,其位置其实是固定的) 。

    Map特点:元素按键值对存储,无放入顺序 (应该知道什么是键值对吧!)List接口有三个实现类:LinkedList,ArrayList,Vector LinkedList:底层基于链表实现,链表内存是散乱的,每一个元素存储本身内存地址的同时还存储下一个元素的地址。

    链表增删快,查找慢 ArrayList和Vector的区别:ArrayList是非线程安全的,效率高;Vector是基于线程安全的,效率低 Set接口有两个实现类:HashSet(底层由HashMap实现),LinkedHashSet SortedSet接口有一个实现类:TreeSet(底层由平衡二叉树实现) Query接口有一个实现类:LinkList Map接口有三个实现类:HashMap,HashTable,LinkeHashMap   HashMap非线程安全,高效,支持null;HashTable线程安全,低效,不支持null SortedMap有一个实现类:TreeMap 其实最主要的是,list是用来处理序列的,而set是用来处理集的。Map是知道的,存储的是键值对 set 一般无序不重复.map kv 结构 list 有序。

3.首先list,set的上层接口是Collection接口。list底层存储数据是通过数组储存。    他有实现类ArrayList和LinkedList比较常用。Vector这个类现在基本没用。Vector和ArrayList是数组,插入数据较慢,查询较快。区别在Vector是线程安全的,所以处理速度不如ArrayList。linkedList是链表结构储存,插入数据较快,查询较慢。

4.Set集合最大特点不存重复元素,Set集合有自己的排序方式,所以取出时顺序和存储时不一样。常用实现类HashSetHashSet储存会判断值的Hash值,相同的话则不储存。Map接口是一个键值对集合,键不可以重复,值无所谓。Map集合也是有自己的排序方式常用实现类HashMap.实际Map集合存的就是映射。

温馨提示:内容为网友见解,仅供参考
第1个回答  2020-05-02
(一)List
1、可以允许重复的对象。
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<Student>
studentSet=studentList.stream().map(Student::getId).collect(Collectors.toSet());
2、list转成map
Map<String,Student>
studentMap=studentList.stream().collect(Collectors.toMap(Student::getId,a
->
a,(k1,k2)->k1));
3、list转成map并且根据student中的name进行分组
Map<String,List<Student>>
group=studentList.stream().collect(Collectors.groupingBy(Student::getName));
参考资料:百度百科-java集合
第2个回答  2019-03-02
主要考两个方面的水平:一是要真正明白这些内容,二是要有较强的总结和表述能力。如果你明白,但表述不清楚,在别人那里则等同于不明白。
首先,list与set具有相似性,它们都是单列元素的集合,所以,它们有一个功共同的父接口,叫collection。set里面不允许有重复的元素,所谓重复,即不能有两个相等(注意,不是仅仅是相同)的对象
,即假设set集合中有了一个a对象,现在我要向set集合再存入一个b对象,但b对象与a对象equals相等,则b对象存储不进去,所以,set集合的add方法有一个boolean的返回值,当集合中没有某个元素,此时add方法可成功加入该元素时,则返回true,当集合含有与某个元素equals相等的元素时,此时add方法无法加入该元素,返回结果为false。set取元素时,没法说取第几个,只能以iterator接口取得所有的元素,再逐一遍历各个元素。
list表示有先后顺序的集合,
注意,不是那种按年龄、按大小、按价格之类的排序。当我们多次调用add(obj
e)方法时,每次加入的对象就像火车站买票有排队顺序一样,按先来后到的顺序排序。有时候,也可以插队,即调用add(int
index,obj
e)方法,就可以指定当前对象在集合中的存放位置。一个对象可以被反复存储进list中,每调用一次add方法,这个对象就被插入进集合中一次,其实,并不是把这个对象本身存储进了集合中,而是在集合中用一个索引变量指向这个对象,当这个对象被add多次时,即相当于集合中有多个索引指向了这个对象,如图x所示。list除了可以以iterator接口取得所有的元素,再逐一遍历各个元素之外,还可以调用get(index
i)来明确说明取第几个。
map与list和set不同,它是双列的集合,其中有put方法,定义如下:put(obj
key,obj
value),每次存储时,要存储一对key/value,不能存储重复的key,这个重复的规则也是按equals比较相等。取则可以根据key获得相应的value,即get(object
key)返回值为key
所对应的value。另外,也可以获得所有的key的结合,还可以获得所有的value的结合,还可以获得key和value组合成的map.entry对象的集合。
list
以特定次序来持有元素,可有重复元素。set
无法拥有重复元素,内部排序。map
保存key-value值,value可多值。

List,Map,Set三个接口存取元素时,各有什么特点?
List特点:元素有放入顺序,元素可重复 Set特点:元素无放入顺序,元素不可重复(注意:元素虽然无放入顺序,但是元素在set中的位置是有该元素的HashCode决定的,其位置其实是固定的) 。Map特点:元素按键值对存储,无放入顺序 (应该知道什么是键值对吧!)List接口有三个实现类:LinkedList,ArrayList,Vect...

list,map,set三个接口,存取元素时,各有什么特点?
list:存储: 有序的 可重复的 访问:可以for循环,foreach循环,iterator迭代器 迭代。set:存储:无序的 不重复的 访问:可以foreach循环,iterator迭代器 迭代 map:存储:存储的是一对一对的映射 ”key=value“,key值 是无序,不重复的。value值可重复 访问:可以map中key值转为为set存储,然...

List,Map,Set三个接口存取元素时,各有什么特点
1、不允许重复对象。2、无序容器,你无法保证每个元素的存储顺序,TreeSet通过 Comparator 或者 Comparable。3、只允许一个 null 元素。4、Set 接口最流行的几个实现类是 HashSet、LinkedHashSet 以及 TreeSet。最流行的是基于 HashMap 实现的 HashSet。(三)map 1、Map不是collection的子接口或者实现...

list set map 三个接口 在存取元素时各有什么特点
map是键值对,而list和set是集合。

Java中Set、List、Map集合类(接口)的特点及区别。分别有哪些常用实现...
Set:检索元素效率低下,删除和插入效率高,插入和删除不会引起元素位置改变;List:和数组类似,List可以动态增长,查找元素效率高,插入删除元素效率低,因为会引起其他元素位置改变;Map:适合储存键值对的数据。Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、...

Java实际开发中set,Map,List分别用在什么情况?
set、map、list是Java API封装的数据结构。之所以封装它们,是为了符合数学意义上的set、map和list上的一些特点。比如set(集合)具有无序性,而且元素不能重复。map主要是散列思想,即key-value值对。list是链表结构,插入和删除元素,一个在头,一个在尾。另外还有Stack是同一端插入和删除。你说他们...

list set map区别是什么?
一、含义不同:set -其中的值不允许重复,无序的数据结构。list -其中的值允许重复,因为其为有序的数据结构。map-成对的数据结构,健值必须具有唯一性(键不能同,否则值替换) 其实都是一个用来存储数据的容器,用的场合不一样其作用也就不一样,具体的用法看我上面的解释。二、用途不同:L...

Java数组、集合和列表的使用与区别
Java集合框架的核心主要包括三种接口:List、Set和Map。List为有序、可重复的集合,通过索引访问元素,类似于数组,支持add、get、remove、clear等操作。List有ArrayList和LinkedList两个实现类。Set为无序且不重复的集合,继承自Collection接口,主要实现类有HashSet和TreeSet。HashSet利用哈希算法存取,存取...

STL中vector,list,deque和map的区别
set:集合,用来判断某一个元素是不是在一个组里面,使用的比较少 map:映射,相当于字典,把一个值映射成另一个值,如果想创建字典的话使用它好了 底层采用的是树型结构,多数使用平衡二叉树实现,查找某一值是常数时间,遍历起来效果也不错,只是每次插入值的时候,会重新构成底层的平衡二叉树,效率有一定影响...

java集合问题
Collection是List和Set两个接口的基接口 List在Collection之上增加了"有序" Set在Collection之上增加了"唯一" 而ArrayList是实现List的类...所以他是有序的. 它里边存放的元素在排列上存在一定的先后顺序 而且ArrayList是采用数组存放元素 另一种List LinkedList采用的则是链表。Collection和Map接口之间的主要区别在于:Col...

相似回答
大家正在搜