gpt4 book ai didi

java - 关于 StringBuffer 和 StringBuilder 中的方法没有被重写?

转载 作者:行者123 更新时间:2023-12-01 16:34:49 26 4
gpt4 key购买 nike

hashCode()equals() 方法在 StringBufferStringBuilder 中没有被覆盖,我正在尝试下面这段代码..

    //StringBuffer does not override equals & hashCode
//StringBuffer s = new StringBuffer("saral");
//StringBuffer s1 = new StringBuffer("saral");

StringBuilder s = new StringBuilder("saral");
StringBuilder s1 = new StringBuilder("saral");

//String s = new String("saral");
//String s1 = new String("saral");

HashSet set=new HashSet();
set.add(s);
set.add(s1);
set.add(null);
System.out.println("There are "+set.size()+" elements in the set.");

当我使用 StringBuffer 或 StringBuilder 时,我得到的结果都是 3,但在 string 的情况下,结果是 2,因为 string 已经覆盖了 hashCode()equals()方法,请指教。

最佳答案

StringBuilder/StringBuffer 是为了更高效的字符串操作而创建的,而不是为了存储值。因此,您不应将其用作 key 或实现您的版本。或者直接调用 toString 即可。

关于java - 关于 StringBuffer 和 StringBuilder 中的方法没有被重写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10361281/

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