我如何通过jUnit测试证明HashSet处理了冲突。例如,我可以在for循环中用10000个元素填充HashSet,但是哪个参数应该告诉我我有冲突,我想考虑集合的大小,但不太确定。
如果要断言HashSet处理相等值的冲突,请输入2个相等值,然后断言集合中只有一项:
HashSet<String> set = new HashSet<>(Arrays.asList("A", "A"));
assertEquals(1, set.size());
Run Code Online (Sandbox Code Playgroud)
如果要断言HashSet处理相同哈希码的冲突,请使用相同的哈希码输入不相等的值,然后断言集合中有两项:
assertEquals("Aa".hashCode(), "BB".hashCode());
HashSet<String> set = new HashSet<>(Arrays.asList("Aa", "BB"));
assertEquals(2, set.size());
Run Code Online (Sandbox Code Playgroud)