这是检查整数数组是否包含重复项的正确方法吗?我想传递一个int [] nums而不是Integer [],但是无法正常工作。
public static boolean isUnique(Integer[] nums){
return new HashSet<Integer>(Arrays.asList(nums)).size() == nums.length;
}
您可以执行以下操作:
public static boolean isUnique(int[] nums){
Set<Integer> set = new HashSet<>(nums.length);
for (int a : nums) {
if (!set.add(a))
return false;
}
return true;
}
这比您所拥有的更像是一种短路式的方法,一旦遇到重复,就会立即返回。更不用说它可以与int[]
您想要的一起使用。我们正在利用Set#add
返回一个布尔值的事实,该布尔值指示集合中是否已经存在要添加的元素。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句