gpt4 book ai didi

java - 将数组存储在 Set 中并避免重复

转载 作者:IT老高 更新时间:2023-10-28 21:21:26 25 4
gpt4 key购买 nike

HashSet<String[]> boog = new HashSet<String[]>();
boog.add(new String[]{"a", "b", "c"});
boog.add(new String[]{"a", "b", "c"});
boog.add(new String[]{"a", "b", "d"});

结果

[a, b, c]
[a, b, d]
[a, b, c]

其中 [a,b,c] 重复,因此散列函数未按预期工作。我将如何覆盖 String 数组的 Hash 方法。或者就此而言,一个通用数组?有没有更好的方法来完成我想做的事情?

最佳答案

你不能。数组使用默认的基于身份的 Object.hashCode() 实现,您无法覆盖它。不要在 HashMap/HashSet 中使用数组作为键!

改为使用一组列表。

关于java - 将数组存储在 Set 中并避免重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7488098/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com