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

标签 java

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/

相关文章:

java - 检测 SD 卡是否存在始终返回 true

java - Wildfly 中 REST 响应的 GZip 压缩

java - 如何使用pdfbox检查文本是否透明

java - 将矩形的四个点重新排序为正确的顺序

java - 替换字符串中 a-z 0-9 和 , 旁边的所有字符

java - MySQL:运行后返回SUCCESS

Java 继承问题 - 尝试理解这个概念

java - 如何使用 YouTube-API-V3 嵌入和播放私有(private)视频

java - 在 java 中,读取 url 并将其拆分为多个部分的最佳方法是什么?

java - 错误: cannot find symbol variable itemsAdapter