java - 如何检查数组中是否有重复的数字?

标签 java arrays collections duplicates

我必须找出数组中是否有重复的数字,如果找到重复的数字,我需要-5分。这是到目前为止我的代码:

for (int k = 0; k < arrNums2.length; k++) 
{
    for (int i = 0; i < arrNums2.length; i++) 
    {
        if (arrNums2[k] == arrNumsCompare[i])
        {             
            points = points - 5;            
            for (int j = 0; j < arrNums2.length; j++)
            {
                if (arrNums2[k] == arrNums2[j])
                {
                    arrNums2[j] = 0;
                }
            }
        }
    }
}

最佳答案

我建议这一行解决方案:

Integer[] numbers = {1,2,3,4,5,6,5,4,3,2,1};

return 5 * (new HashSet<Integer>(Arrays.asList(numbers)).size() - numbers.length);

我将所有元素添加到一个 Set 中,根据定义,该 Set 拒绝重复。然后我将集合的大小与数组的长度进行比较,并将结果乘以 5。

关于java - 如何检查数组中是否有重复的数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19222307/

相关文章:

java - 让 Swing 操作变得即时

python - np.array(filter(func,iter)) 不生成数组

arrays - 快速解析一个n维数组

c# - 迭代 T[] 转换为 IList<T> 的开销

java - org.apache.commons.mail附件文件名编码

java - 使用反射的非虚方法调用

Javascript按值将数组转换为分组对象

java - 如何使用 Spring Data(MongoDB) 映射通用集合?

java - 用比较器比较不同的对象类型

java - 找不到DynamoDB地理对象映射器类