当前位置: 首页 > 面试题库 >

何时使用集合与集合?

端木元青
2023-03-14
问题内容

除了a SetCollectionJava Collection可以两次包含相同的元素外,a 和Java
之间在实践上还有什么区别吗?它们具有相同的方法。

(例如,是否Set给我更多选择来使用接受Sets但不接受s的库Collection?)

编辑: 我可以认为至少有5种不同的情况来判断这个问题。其他人还能提出更多建议吗?我想确保我了解这里的微妙之处。

  1. 设计接受Set或参数的方法CollectionCollection更通用,并接受更多输入可能性。(如果我正在设计特定的类或接口,那么对我的消费者会更好,如果使用,我的子类/实现者也将更加严格Collection。)
  2. 设计返回Set或的方法CollectionSet提供了更多的保证Collection(即使只是保证不重复包含一个元素两次)。(如果我正在设计特定的类或接口,那么对我的消费者会更好,如果使用,我的子类/实现者也将更加严格Set。)
  3. 设计一个实现接口Set或类的类Collection。与#2类似。我的类/界面的用户获得更多保证,子类/实现者则承担更多责任。
  4. 设计扩展接口的接口SetCollection。与#3非常相似。
  5. 编写使用Set或的代码Collection。在这里我最好用Set; 我使用的唯一原因Collection是,如果我Collection从别人的代码中取回了a ,或者必须处理包含重复项的html" target="_blank">集合。

问题答案:

Collection也是超类型ListQueueDeque,和其他人,所以它给你更多的选择。例如,我尝试将Collection不应显式依赖某种特定类型的集合的方法用作参数。

通常,您应该使用正确的工具来完成工作。如果您不希望重复,请使用Set(或者SortedSet如果要订购,或者LinkedHashSet要保持插入顺序)。如果要允许重复,请使用List,依此类推。



 类似资料:
  • Map和Set都叫做集合,但是他们也有所不同。Set常被用来检查对象中是否存在某个键名,Map集合常被用来获取已存的信息。 Set Set是有序列表,含有相互独立的非重复值。 创建Set 既然我们现在不知道Set长什么样,有什么价值,那么何不创建一个Set集合看看呢? 创建一个Set集合,你可以这样做: let set = new Set(); console.log(set);

  • 我正在尝试为firestore中的社交媒体应用程序组织数据。为帖子创建一个新集合或将其放入用户的子集合更好吗? 深度应该是一样的,但是一种方式比另一种方式有什么优势吗? 创建新集合: 职位(集合) 用户(集合) 用户中的子集合: 用户(集合)

  • 大多数 ASP 内建对象支持集合。集合是存储字符串、数字、对象和其他值的地方。除了在存储或取出项目时集合会自动扩展与搜索外,集合与数组非常相近。与数组不同的是,集合被修改后,项目的位置将会移动。可以通过集合中项目的名称、索引或者通过在集合的所有项目中遍历访问项目。 通过名称和索引访问项目 通过使用项目名称可以访问集合中的具体项目。例如,Contents 集合拥有在 Session 对象中保存的所有

  • 问题内容: 我在父类和子类之间定义了双向的一对多关系。我正在寻找执行一个查询,以便我可以在bean中返回一个父对象及其子对象的子集。 我想要实现的输出是: 我想过滤父母的ID和孩子的年龄列。我尝试了多种查询组合以获取所需的输出。 以下内容很接近,但没有将子级分组到我定义的ParentChildWrapper bean中的集合中。我得到的结果是对象列表,每个孩子有1个实例与年龄过滤器匹配: 我还尝试

  • 方法在什么条件下抛出?官方文件提到: NullPointerException-如果指定的集合包含null元素并且该集合不允许null元素,或者如果指定的集合为null 我如何确保这个“集合不允许空元素” 输出

  • 在连续情景中,我们不得不处理函数的集合和函数的系集。由函数集的名字可以看出,它就是一组函数,通常是一个变量——时间的函数。为描述函数集,我们可以给出集合中各种函数的显式表达式,也可以给出只有集合中的函数才拥有的性质。下面是一些示例: 由以下函数组成的集合: 。 的每个具体值确定了集合中的一个特定函数。 一个由时间函数组成的集合,其中包含频率不超过W周期/秒的所有时间函数。 一个由带宽局限于W、幅度