Array mit unterschiedlichen Werten

zenpaticx

Mitglied
Hallo an alle!
Ich stehe momentan vor einem Problem, bei dem jedes weitere Troubleshooting (und was ich schon nach bestem Willen erledigt habe) mich nicht weiter bringt..

Im folgenden Code soll ein Integer-Array mit Werten befüllt werden. Es sollen aber keine Duplikate vorkommen. Von meiner "Logik" her bin ich ziemlich nah drann. Allerdings kommen momentan immer noch doppelte Werte vor.

Java:
package _0xDEADBEEF;

import java.util.*;

public class _0xDEADC0DE {
       
   public static int[] iArr = new int[7];
   
   public static boolean contains(int iTarget){
       for(int i = 0; i < iArr.length; i++){
           if(iArr[i] == iTarget){
               return true;
           /* Changed it to false instead of break */
           } else {
               return false;
           }
       }
       return false;
   }
   
   public static void main(String[] args) {
   
       for(int i = 0; i < iArr.length; i++){
           int iValue = (int)(10 * Math.random());
           /*iArr[i] = iValue;*/
           /* Check if the value is already stored inside of the array */
           while(contains(iValue)){
               /*iArr[i] = (int)(10 * Math.random());
               iValue = iArr[i];*/
               System.out.println(iValue + " is already stored.");
               /* Change the value to prevent an infinite loop */
               iValue = (int) (10 * Math.random());
           }
           
           if(contains(iValue) == false){
               iArr[i] = iValue;
           }
       }
       System.out.println("Done.");
       
       for(int k = 0; k < iArr.length; k++){
           System.out.println(k + ". Element: " + iArr[k]);
       }
   }
}

Für jeden Tipp/Hinweis bin ich unendlich dankbar!

Beste Grüße an alle!
 
Habe das Problem gelöst bekommen 😉​

Der Vollständigkeit halber, hier der funktionierende Code:


Java:
package _0xDEADBEEF;
import java.util.*;

public class _0xDEADC0DE {
      
   public static int[] iArr = new int[7];
  
   public static boolean contains(int iTarget){
       for(int i = 0; i < iArr.length; i++){
           if(iArr[i] == iTarget){
               return true;
           }
       }
       return false;
   }
  
   public static void main(String[] args) {
  
       for(int i = 0; i < iArr.length; i++){
           int iValue = (int)(10 * Math.random());
          
           /* Check if the value is already stored inside of the array */
           while(contains(iValue)){
               iValue = (int) (10 * Math.random());
           }
          
           /* If the method returns false, the value is not stored so we can do it now */
           iArr[i] = iValue;
       }
       System.out.println("Done.");
      
       for(int k = 0; k < iArr.length; k++){
           System.out.println(k + ". Element: " + iArr[k]);
       }
   }
}
 

Neue Themen


Zurück
Oben