128ecf542a35ac5270a87dc740918404

128ecf542a35ac5270a87dc740918404

我有一些像哈希值


  • 128ecf542a35ac5270a87dc740918404; d603ac0c04b9d08974482ae7fd4cf55
  • a1288b1c7e2257a90bad9bdfb7690fbb; f23828e312d90cb7fdadd6479236119c
  • ................................; ................ .......


  • 我想使每一对都具有可比性,这意味着:

    128ecf542a35ac5270a87dc740918404; d603ac0c04b9d08974482ae7fd4cf55d

    保持原样;

    如果是

    d603ac0c04b9d08974482ae7fd4cf55d; 128ecf542a35ac5270a87dc74091840

    4,应该成为

    128ecf542a35ac5270a87dc740918404; d603ac0c04b9d08974482ae7fd4cf55d

    我的主要目标是拥有一个特定的函数,该函数将一对中的两个哈希值进行比较,并根据某些规则返回一对其中的值具有顺序的值。规则本身并不重要,唯一的要求是,输入应该是(unique1,unique2)或(unique2,unique1),它应该非常快并且应该始终给出相同的结果

    谢谢!

    一种明显但效率不高的方法是仅对每个哈希值中包含的数字求和并进行比较,然后将哈希值较小的和作为对中的第一个元素,将较大的哈希值作为对中的第二个元素。

    最佳答案

    只需将两个字符串与常规字符串比较(compareTo)进行比较,然后将较小的字符串放在第一位即可。这将保证您想要的。我希望这会非常便宜,因为在实践中,哈希值在前几个字符中已经有所不同,因此比较不需要查看其余字符串。而且,访问和比较非常少的字节数(如您的示例中)非常便宜,以至于只有与程序的其他操作相比,经常这样做,才能看到性能影响。

    如果您没有字符串形式的值,而是字节数组或类似形式的值,则只需自己进行一个简单的字典比较。

    10-06 00:42