2016-05-13 7 views
-3

Wie kann ich dafür sorgen, dass dieser Code keine Wiederholungszahlen enthält?
Alles, was ich tun möchte, ist es so zu machen, dass es keine Duplikate in diesem kleinen Block ausgibt.Wie kann ich Dubletten in diesem Java-Code loswerden?

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

Was macht Ihr Programm? Wenn Sie nicht daran interessiert sind, die ursprüngliche Reihenfolge beizubehalten, aber keine wiederholten Zahlen in Ihrer Sammlung haben möchten, können Sie anstelle eines Arrays ein 'Set' verwenden ... –

+0

" Wie kann ich dafür sorgen, dass dieser Code keine sich wiederholenden Zahlen enthält? " Indem Sie Code schreiben, der nach doppelten Nummern sucht und diese aus dem Array entfernt. –

Antwort

0

Ihr Code, um das int-Array in aufsteigender Reihenfolge sortiert. Es wäre schön gewesen, wenn du das in deiner Frage erwähnt hättest und es nicht jemand anderem überlassen hättest.

Das Entfernen der Duplikate erforderte zusätzlichen Code.

Hier sind die Ergebnisse eines Testlaufs.

[2, 5, 10, 44] 

Hier ist die überarbeitete Version Ihres Codes. Es kann ausgeführt werden, sodass Sie den Code kopieren und in Ihre IDE einfügen können.

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

} 
Verwandte Themen