当前位置: 首页 > 知识库问答 >
问题:

来自字段字符串concat的Hashcode与自动生成方法的比较

曾宏毅
2023-03-14

如果我们有如下类:

class ConnectedPair {
        private String source;
        private String destination;

        public ConnectedPair(String source, String destination) {
            if(source == null || destination == null) {  
                throw new NullPointerException();
            }
            this.source = source;
            this.destination = destination;
        }
}  

并且要在HashMapHashSet中使用它,则需要实现EqualsHashCode
为该类自动生成的HashCode是:

@Override
public int hashCode() {
    int result = source.hashCode();
    result = 31 * result + destination.hashCode();
    return result;
}  

但我想知道我们是否应该这样做:

@Override
public int hashCode() {
    return (source + "=>" + destination).hashCode();
}  

这比自动生成的方法更好还是更差?类似的方法也在其他脚本语言中使用,正如我所见,我想知道生成的散列是更好还是更差(或者没有区别)。

注意:假设字符串concat可以被缓存并因此得到优化,我们将其忽略为性能下降

暂时还没有答案

 类似资料:
  • 本文向大家介绍javascript自动生成包含数字与字符的随机字符串,包括了javascript自动生成包含数字与字符的随机字符串的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了javascript自动生成包含数字与字符的随机字符串的方法。分享给大家供大家参考。具体如下: 这里主要用到Math.random() 和 Math.floor() 两个函数 Math.random()   --

  • 问题内容: 我想基于我的字符串更改imageview src,我有这样的东西: 当然不行。如何以编程方式更改图像? 问题答案: 用: 注意:不要使用扩展名(例如,“。jpg”)。 示例:图像为“ abcd_36.jpg”

  • 我不熟悉JOOQ,使用的是JOOQ的最新版本(3.10.5)。我只是将其用作SQL生成器,而不是对任何数据库执行它。 我使用 当我试图将任意字符串“CC_”与限定字段名称字段(“TBL.[列名称]”)合并时,结果字段就像 然后,当我使用getSQL()时,我得到了如下结果 有人能告诉我哪里出了问题,为什么连接的字符串被替换为?。

  • 问题内容: 假设字符串a和b: 在幕后,他们是同一回事吗? 这里将concat反编译为参考。我也希望能够反编译该+运算符,以查看其作用。 问题答案: 不,不是。 首先,语义上略有不同。如果a是null,则抛出一个,但a+=b将把原来的值a就好像它是null。此外,该方法仅接受值,而+操作员会将参数无提示地转换为String(使用对象的方法)。因此,该concat()方法在接受方面更加严格。 要深入

  • Eclipse提供了为每个类自动生成toString方法的选项。 进一步利用这个功能,我正在创建字符串格式模板,在eclipse生成toString方法时作为Json格式提供。 我使用了以下字符串格式模板: 现在我按照POJO生成toString方法,但是当我运行这个程序时,我得到的结果是而不是有效的JSON。 密码 }

  • 问题内容: 假设字符串a和b: 在幕后,他们是同一回事吗? 这里将concat反编译为参考。我也希望能够反编译该+运算符,以查看其作用。 问题答案: 首先,语义上略有不同。如果a是,则抛出一个,但将把原来的值a就好像它是null。此外,该方法仅接受值,而+操作员会将参数无提示地转换为(使用对象的方法)。因此,该方法在接受方面更加严格。 要深入了解,请写一个简单的类 ; 现在与一起拆卸(包括在Sun