当我们可以使用列表时,set的用途是什么

时间:2016-07-28 17:40:08

标签: java collections

为了删除重复,java人员会在列表中添加一个额外的类,那么创建整个层次结构的用途是什么?

2 个答案:

答案 0 :(得分:2)

Set可以包含重复元素。 List(在Java中)也意味着顺序。从概念上讲,我们通常指的是一个无序的分组,允许重复作为一个Bag,并且不允许重复是一个Set。 List用于收集带有重复项的元素。

有关详情,请点击此链接:What is the difference between Set and List?

When to use List, Set and Map in Java?

1)如果你不想在数据库中有重复的值,那么Set应该是你的第一选择,因为它的所有类都不允许重复。

2)如果需要基于索引值的频繁搜索操作,则List(ArrayList)是更好的选择。

3)如果需要维护插入顺序,那么List也是首选的集合接口。

4)如果要求有钥匙&数据库中的值映射然后Map是你最好的选择。

答案 1 :(得分:0)

主要是效率。

以实现查找效率的方式实现集合。如果要查找集合中是否存在元素,则只需要对数时间。如果要查找列表是否包含元素,则需要(悲观地)遍历整个列表。

想象一下,你有一个200k字的字典,想要检查一个包含50k字的文本,看它们是否在字典中。使用列表字典执行此操作需要大约100k(平均列表的一半)* 50k操作。在集合上执行此操作仅需要log(200k)* 50k,其中log(200k)〜= 16.