在Java中的一组字符串中检查遏制

前端之家收集整理的这篇文章主要介绍了在Java中的一组字符串中检查遏制前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一组字符串[].我想检查这个集合是否包含另一个String [].
Set<String[]> s  = new HashSet<String[]>();
s.add(new String[] {"lucy","simon"});
System.out.println(s.contains(new String[] {"lucy","simon"}));

但是,打印错误.我的猜测是这是因为只是引用被比较而不是实际的字符串.看来,我唯一的选择是创建一个类,说短语,并实现hashCode()和equals()(使用Arrays.hashCode(…)).

有什么其他方式可以实现我想要的吗?

解决方法

你的猜测是正确的:arrays([])不实现一个深度的equals方法:如果它们是相同的实例,它们是等于的.

最简单的解决方法是:通过List< String>替换String []

另一种方式(但我不推荐它)是实现自己的Set,它不是基于Object.equals而是基于java.util.Arrays.equals(Object [] a,Object [] b)

猜你在找的Java相关文章