如何摆脱此Java代码中的重复项?

时间:2016-05-13 16:38:07

标签: java

如何让此代码中没有任何重复数字?
我想做的就是让它不输出任何重复 在这个小街区。

int[] arr = {5,10,44,2, 44,44,5,10,44,2, 44,44};
int startScan;
int index;
int minindex; 
int minValue;

for (startScan=0;startScan<(arr.length-1);startScan++){
    minindex=startScan; 
    minValue =arr[startScan]; 

    for (index=startScan+1; index<arr.length;index++){
        if (arr[index]<minValue){
            minValue=arr[index]; 
            minindex=index; 
            }
        } 
        arr[minindex]=arr[startScan];
        arr[startScan]=minValue;
    }

for(int x=0; x<arr.length;x++)
    System.out.println(arr[x]); 

1 个答案:

答案 0 :(得分:0)

您的代码按升序对int数组进行排序。如果你在你的问题中提到了这一点,那就太好了,而不是让其他人花时间搞清楚。

删除重复项需要一些额外的代码。

以下是测试运行的结果。

[2, 5, 10, 44]

这是您的代码的修订版本。它是可运行的,因此您可以复制代码并将其粘贴到IDE中。

package com.ggl.testing;

import java.util.Arrays;

public class RemoveDuplicates {

    public static void main(String[] args) {
        int[] arr = { 5, 10, 44, 2, 44, 44, 5, 10, 44, 2, 44, 44 };
        int masterIndex = 0;

        for (int startScan = 0; startScan < (arr.length - 1); startScan++) {
            int minindex = startScan;
            int minValue = arr[startScan];

            for (int index = startScan + 1; index < arr.length; index++) {
                if (arr[index] < minValue) {
                    minValue = arr[index];
                    minindex = index;
                }
            }

            arr[minindex] = arr[startScan];
            arr[startScan] = minValue;

            if (arr[masterIndex] < minValue) {
                arr[++masterIndex] = minValue;
            }
        }

        int[] newarr = Arrays.copyOf(arr, masterIndex + 1);
        System.out.println(Arrays.toString(newarr));
    }

}