簡體   English   中英

如何消除此 Java 代碼中的重復項?

[英]How can I get rid of duplicates in this Java code?

如何使此代碼中沒有任何重復數字?
我想要做的就是讓它不會在這個小塊中輸出任何重復項。

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]); 

您的代碼按升序對 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));
    }

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM