hashcode()与toString()。hashcode();

问题描述 投票:0回答:1

仅尝试讨论和理解以下代码之间的区别。

a>

SortedSet<String> set = new TreeSet<>();
set.addAll(str);
int hashcode= set.toString().hashCode();

b>

SortedSet<String> set = new TreeSet<>();
set.addAll(str);
int hashcode = set.hashCode();

我已经检查过您是否以相同顺序将相同的字符串元素放入两个集合中,哈希码返回值将相同。只想知道条件a>比

java hashcode
1个回答
2
投票

第一个片段将集合转换为字符串(可能是繁重的操作),然后对其进行哈希处理。第二个直接对集合进行哈希处理。

由于相等的集合将产生相等的字符串和相等的哈希,因此两种方法在技术上都是可以的,但是先将集合转换为字符串(方法a)真的很多余-使用它没有任何好处,而您所做的就是浪费资源转换为字符串。

© www.soinside.com 2019 - 2024. All rights reserved.