gpt4 book ai didi

Java:使用 toString().equals() 与 equals()

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:08:19 48 4
gpt4 key购买 nike

这是一个理论问题。我有一个我自己设计的对象,其中包含一堆变量、方法等。我覆盖了 toString 方法,主要用于记录目的,以返回变量的值。在我看来,比较此对象实例的最简单和最直接的方法是比较从 toString 方法返回的内容。例如,equals 方法可能看起来像

public boolean equals(MyObject instance)
{
return toString().equals(instance.toString());
}

有理由不这样做吗?

最佳答案

避免这种模式的一个原因是速度:为了使用 toString() 比较相等性,您必须这样做:

  • 为对象this创建一个临时的String对象
  • 为对象实例创建一个临时的String对象
  • 逐个字符比较第一个String和第二个String
  • 使临时字符串可用于垃圾检测

如果您直接进行比较,则可以跳过大部分内容。例如,直接比较 int 需要比较 4 个字节,而比较它们的字符串表示需要多达 9 个字节的比较。其他数据类型也会出现类似情况。

关于Java:使用 toString().equals() 与 equals(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31643386/

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