List、Set、Map的区别

想知道的一些List、Set、Map的区别和关于list和map的区别的相关话题,小编带各位来了解一下都关心的题。

List、Set和Map的区别

1面试题你能告诉我集合中有哪些子类别吗?

如图1所示,list和set实现了集合接口。

List:1可以允许重复的对象。

2.可以插入多个空元素。

3是有序容器,维护每个元素的插入顺序,输出顺序就是插入的顺序。

4常用的实现类有ArrayList、LinkedList和Vector。ArrayList是最流行的,它提供使用索引的随意访,而LinkedList更适合经常需要在List中添加或删除元素的情况。

Set:1不允许重复的对象

2无序容器,无法保证每个元素的存储顺序。TreeSet通过Comparator或Comparable维护排序顺序。

3只允许有一个空元素

4Set接口最流行的实现类是HashSet、LinkedHashSet和TreeSet。最流行的是基于HashMap实现的HashSet;TreeSet还实现了SortedSet接口,因此TreeSet是一个根据其compare和compareTo定义排序的有序容器。

1Map不是集合的子接口或实现类。地图是一个界面。

2Map的每个Entry都保存两个对象,即一个key和一个value。Map可以保存相同的值对象,但键对象必须是唯一的。

3TreeMap还通过Comparator或Comparable维护排序顺序。

4一个Map中可以有任意数量的空值,但最多可以有一个空键。

5Map接口最流行的实现类是HashMap、LinkedHashMap、Hashtable和TreeMap。

2面试题list、set、map在什么场景下使用?

如果您经常使用索引来访容器中的元素,那么List是您的正确选择。如果您已经知道索引,那么ArrayList等List实现类可以提供更快的访。如果你经常添加和删除元素,那么你必须选择LinkedList。

如果希望容器中的元素按照插入的顺序依次存储,那么它仍然是List,因为List是有序容器,它是按照插入的顺序存储的。

如果你想保证插入元素的唯一性,即不希望出现重复值,那么你可以选择Set实现类,比如HashSet、LinkedHashSet或者TreeSet。所有Set实现类都遵循统一约束(例如唯一性),并且还提供附加功能(例如TreeSet或SortedSet)。存储在TreeSet中的所有元素都可以使用Java中的Comparator或Comparable进行排序。LinkedHashSet还按照元素插入的顺序存储元素。

如果您以键和值的形式存储数据,那么Map是您的正确选择。您可以根据后续的需求选择Hashtable、HashMap、TreeMap。

您可以按照以下步骤进行尝试。

1.我们知道,要实现列表的排序,需要重写compare接口的compareTo方法。

但我不知道comparaTo怎么写。有没有传入参数?它有返回值吗?如果发生什么事情会是什么样的事情?好吧,我们一起来做吧。首先从此链接下载帮助文档。下载后,打开帮助文档。

2.看完帮助文档,是不是感觉更有信心了呢?现在打开eclipse,我们一起来写吧。

首先,我们要比较对象的哪个属性。年龄?高度?还是体重?我已经通过帮助文档知道了这一点,所以我们一起写下来。

如果你也像上图这样写,那么就想想是否还有更好的办法。我一定会有这样的吻。好好看看帮助文档就知道了。我知道只要你仔细想一想,你一定能想出来的!

好吧,现在你已经写完了你的年龄,为什么不再花几分钟按身高排序呢?

本篇文章主要为大家解了一些关于List、Set、Map的区别和list和map的区别的这类话题,希望能得到大家的喜欢。

除非特别注明,本站所有文字均为原创文章,作者:admin

No Comment

留言

电子邮件地址不会被公开。 必填项已用*标注

感谢你的留言。。。