gpt4 book ai didi

java - 集合,使用什么方法来授权添加元素?

转载 作者:行者123 更新时间:2023-12-02 08:32:43 25 4
gpt4 key购买 nike

我们在Collection下发现了很多具体的子类。

当尝试在具体集合中添加元素时,该集合将使用一种方法来确定它是否可以接受存储该元素(最终该元素尚不存在于集合中)。它可以使用元素的 equals()hashCode()compareTo()

是否可以找到有关 Collection 的每个实现使用哪种方法的摘要?

非常感谢您的回答。

最佳答案

首先,并非所有集合都会检查您要添加的元素是否已存在于集合中。例如,ArrayList 只是将元素追加到列表的尾部,而不检查它是否已经在列表中。如果保证集合只有对象的一份副本,则其他类使用 equals;如果元素应该是可比较的并且集合已排序(以找到插入它的正确位置),则使用compareTo。 Maps 也会使用 equals 来检查键,但是像 HashMap 这样的一些映射也会使用 hashCode() 来加速搜索过程(它们首先获取具有相同 hashcode 的所有键,然后对每个键使用 equals 来查找是否符合键已存在并已分配值,该值随后将被替换)。

但是如果您想了解它们是如何工作的,您可以查看 jdk 中包含的源代码。在eclipse中,我将JRE设置为安装jdk的文件夹,我可以使用CTRL + SHIFT + T打开jdk中的任何类(类型),CTRL +单击类的名称,或者对于方法,甚至CTRL+单击 -> 打开实现,这将打开一个弹出窗口,其中包含实现该方法的类(如果它来自接口(interface),或者直接在类中的方法,如果不是)

关于java - 集合,使用什么方法来授权添加元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2887682/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com