我有一个String列表。我想从列表的所有字符串中生成一个哈希代码。我怎样才能做到这一点 ?
答案 0 :(得分:3)
如果有对象列表,则可以
List<String> list = ...
int hashCode = list.hashCode();
hashCode使用内容。如果需要,有很多改进哈希码的选项,但这是最简单的。
答案 1 :(得分:1)
尝试一下:
int hashCode = Objects.hash(list.toArray());
答案 2 :(得分:0)
您可以只选择列表中的hashCode
,但是如果您打算让List
的不同实现使用相同的字符串,则可能会有些麻烦。仅依赖于字符串本身的更可靠的解决方案是使用Arrays#hashCode
:
int hash = Arrays.hashCode(list.toArray());
但是,请注意,此哈希码取决于数组元素的顺序,因此,如果您不关心列表中字符串的顺序,则可能需要对该数组进行排序,以便相同字符串产生相同的哈希码。