相关疑难解决方法(0)

为什么在密码学中使用XOR?

为什么XOR仅用于加密算法,而其他逻辑门如OR,AND和NOR则不使用?

encryption cryptography

68
推荐指数
6
解决办法
3万
查看次数

散列复合对象

编辑: 这个问题不是关于按位运算符,无法回答为什么XOR经常在java hashCode()中使用,但很少使用其他按位运算符?

我已经看到了对象的哈希计算的不同方法:

class A {
  public B b;
  public C c;

  @Override
  public boolean equals();
  @Override
  public int hashCode() {
   return c.hashCode() ^ b.hashCode(); //XOR
   return c.hashCode() + prime * b.hashCode(); // SUM
   return Objects.hash(b,c); // LIB
  }
}
Run Code Online (Sandbox Code Playgroud)

似乎LIB方法使用SUM,但为什么它比XOR更好?

即使示例是Java,这个问题更多的是关于数学和概率.

java hash

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

为什么xor运算符用于计算哈希码?

在这篇MSDN文章 http://msdn.microsoft.com/en-us/library/ms132123.aspx中, 它讨论了Class Equalitycomparer并有一个例子.在这个关于比较它的例子中它有这个类 -

class BoxSameDimensions : EqualityComparer<Box>
{
    public override bool Equals(Box b1, Box b2)
    {
        if (b1.Height == b2.Height & b1.Length == b2.Length
            & b1.Width == b2.Width)
        {
            return true;
        }
        else
        {
            return false;
        }
    }

    public override int GetHashCode(Box bx)
    {
        int hCode = bx.Height ^ bx.Length ^ bx.Width;
        return hCode.GetHashCode();
    }
}
Run Code Online (Sandbox Code Playgroud)

我不明白行hCode = bx.Height ^ bx.Length ^ bx.Width;

有人可以解释一下吗?为什么xor?

.net c#

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

在哈希码方法中使用^的原因是什么?

我今天发现了这段代码:

private static class Node{
    private final int code1;
    private final int code2;

    public Node(int code1, int code2) {
        this.code1 = code1;
        this.code2 = code2;
    }

    @Override
    public int hashCode() {
        return (code1 * 31) ^ code2;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj instanceof Node) {
            Node node = (Node) obj;
            return node.code1 == code1 && node.code2 == code2;
        }
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

哈希码是否有充分的理由使用(code1*31)^ code2;

根据我的理解,创建哈希码的常用方法是将当前哈希码(或第一个字段)乘以素数,并为每个字段添加下一个字段.

为什么在这里需要电源 XOR运算符?

java hashcode xor

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

将两个arraylists与多个set字段进行比较

我试图比较两个ArrayLists,但我似乎无法让它工作.

假设:

我的名为List 1的主arrayList通过以下方式获取其值:

 ArrayList<xTypeClass> List1 = new ArrayList<xTypeClass>(); 
 xTypeClass tmp = new xTypeCLass();
  tmp.setName(name);
  tmp.setaddress(address);
  tmp.setPhone(phone);
  tmp.setMonth(mo);
 ..etc
 List1.add(tmp);
Run Code Online (Sandbox Code Playgroud)

现在我有另一个list2,它包含确切的类型格式,但具有不同的值.我想将List2与1进行比较,看看List2中哪些不存在于List1中并将其添加到List2.我有问题使用双循环来绕过两个列表找到哪些存在,哪些不存在.有人能指出我正确的方向吗?如果您需要更多信息,请在下方发表评论

java

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

标签 统计

java ×3

.net ×1

c# ×1

cryptography ×1

encryption ×1

hash ×1

hashcode ×1

xor ×1