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

当您在arraylist上调用remove(object o)时,它如何比较对象?

公孙胡媚
2023-03-14
问题内容

当您在java中的arraylist上调用remove(object
o)时,它如何比较这些对象以找到要删除的正确对象?它使用指针吗?还是使用Comparable接口比较对象?


问题答案:

ArrayList
remove()依赖于该Equal方法的对象实现。如果尚未执行任何实现,则通过Object的实现删除对象,Equals该实现的确是指针比较。

从文档ArrayList-

更正式地,删除具有最低索引i的元素,使得(o==null ? get(i)==null : o.equals(get(i)))(如果存在这样的元素)

对象equal方法文档-

类Object的equals方法在对象上实现了最有区别的对等关系。也就是说,对于任何非空引用值xy,当且仅当xy引用同一对象(x == y具有值true)时,此方法返回true 。



 类似资料:
  • 问题内容: 我有两个。每个大小为100000。我想比较它们并计算匹配的元素。 这是我的代码: 在这里比较过程要花费很多时间。 如何解决和优化此问题。 问题答案: 您应该使用:返回一个包含collection1中所有元素的集合,这些元素也处于collection2中。

  • 我编写了下面的代码来从ArrayList中获取重复的元素。我的aerospikePIDs列表没有任何重复的值,但是当我执行下面的代码时,它仍然在读取if条件。

  • 我试图在elasticsearch查询中使用无痛语言来比较小时数。我想问一下这样的问题: 但我有错误: 无法应用 [ 嵌套文档的方案是: (这些值的格式为“2:00”或“18:00”)。 我尝试过使用< code >。日期 或<代码>。value,但它不起作用,因为我的变量只包含小时而不是日期时间。 有人能帮帮我吗:)

  • 问题内容: 我有两个Arraylist 其包含以下值是 AllProcessList arraylist包含所有Java进程,RunningProcessList arraylist包含当前正在运行的进程。我想比较这两个arraylist并显示是否未运行该进程。例如,比较两个列表并要显示以下进程未运行。 我使用了以下代码,但无法正常工作。 问题答案: 查看List的文档,尤其是removeAll(

  • 问题内容: 最近在一次求职面试中,有人问我以下问题(对于Java): 鉴于: 的返回值是多少 我回答它会返回false,因为它们是两个不同的对象,并且==是内存地址比较而不是值比较,并且需要使用.equals()比较String对象。但是我被告知,尽管.equals(0方法论是正确的,但是该语句仍然返回true。我想知道是否有人可以向我解释为什么它是正确的,但是为什么我们还在学校里教我们使用equ