小编Trn*_*nKh的帖子

以下情况的hashCode()方法:当两个集合至少有一个共同的元素时,它们是相等的?

我目前面临的情况是我有String元组(大小为2),如果它们至少有一个共同的元素,则应该认为两个元组是相等的.我有以下课程实现这个想法:

public class MyTuple
{
    private List<String> list = Arrays.asList(new String[2]);

    public List<String> getList()
    {
        return list;
    }

    public void set(String firstElement, String secondElement)
    {
        list.set(0, firstElement);
        list.set(1, secondElement);
    }

    @Override
    public boolean equals(Object other)
    {
        if (other instanceof MyTuple) {
            return !Collections.disjoint(this.list, ((MyTuple) other).getList());
        }
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,根据hashCode()合同:

如果两个对象根据equals(Object)方法相等,则对两个对象中的每一个调用hashCode()方法必须生成相同的整数结果.

如何覆盖我的hashCode()方法不违反合同?

java equals hashcode

3
推荐指数
1
解决办法
118
查看次数

Hive JDBC Kerberose 身份验证错误:GSS 启动失败

我尝试使用以下连接字符串通过 JDBC 连接到 Hive:

Class.forName("org.apache.hive.jdbc.HiveDriver")

hiveConString = "jdbc:hive2://localhost:10000/default;principal=hive/_HOST@HADOOP.LOCALDOMAIN"
Run Code Online (Sandbox Code Playgroud)

虽然我遇到以下错误:

Exception in thread "main" java.sql.SQLException: Could not open client transport with JDBC Uri:jdbc:hive2://localhost:10000/default;principal=hive/_HOST@HADOOP.LOCALDOMAIN:GSS initiate failed
Run Code Online (Sandbox Code Playgroud)

我已经检查了 hive-site.xml 以确保遵循 kerbersoe 身份验证。XML 文件包括:

<property>
   <name>hive.server2.authentication.kerberos.principal</name>
   <value>hive/_HOST@HADOOP.LOCALDOMAIN</value>
</property>
Run Code Online (Sandbox Code Playgroud)

我还确保包含所有必需的 Maven 存储库。

另外,我正在使用 Eclipse 在 VM 上运行代码。

java hive jdbc

1
推荐指数
1
解决办法
1万
查看次数

标签 统计

java ×2

equals ×1

hashcode ×1

hive ×1

jdbc ×1