Ich versuche zu machen ist so, dass in der Methode auffüllen, wie das Populate-Array erhöht es den Index oben überprüft, wenn der Wert derselbe ist. Ich habe jedoch keine Ahnung, wie ich das machen könnte, ohne jeden Index einzeln durchzugehen, was ihn sehr ineffizient macht. Ich habe versucht, eine for-Schleife, wo der I-Wert ist 0 und erhöht sich um 1 und innerhalb dieser for-Schleife ist eine andere for-Schleife mit dem b-Wert ist 1 und das erhöht sich auch um 1. Innerhalb der zweiten for-Schleife habe ich eine if-Anweisung und wenn der Index I auf den b-Index wird der Index I aufgewertet wiederWie entfernen Sie Dupicates aus einem Array?
public class CH7Ass {
public static void main(String[] args) {
int user;
int[] array;
int checkUserNum;
int tries=0;
System.out.println("I bet you can't guess my six numbers");
array=populate();
do{
tries++;
user=getUserNum();
checkUserNum=checkUserNum(user,array);
array=removeFromArray(array,checkUserNum);
}while(tries<6);
}
public static int[] populate(){
int[] populate;
populate= new int [6];
int random;
for(int i=0;i<populate.length;i++){
random=(int) ((Math.random())*50); //goes from 0-49
populate[i]=random;
System.out.println(populate[i]);
for(int b=1;b<populate.length;b++){
if(populate[b]==populate[i]){
populate[i]=random;
}
}
}
return populate;
}
public static int getUserNum(){
int getUserNum;
do{
System.out.println("Please input a number from 1 to 49:");
getUserNum=TextIO.getInt();
}while((getUserNum<1)||(getUserNum>49));
return getUserNum;
}
public static int checkUserNum(int getUserNum,int[] array){
boolean check=false;
int checkUserNum = 0;
for(int i=0;i<array.length;i++){
if(array[i]==getUserNum){
check=true;
System.out.println("You got it");
checkUserNum=i;
}
}
if(check==false){
checkUserNum=-1;
System.out.println(checkUserNum);
}
return checkUserNum;
}
private static int[] removeFromArray(int[] array,int checkUserNum){
int[] removeFromArray;
if(checkUserNum!=-1){
array[checkUserNum]=0;
removeFromArray=array[checkUserNum];
}
return removeFromArray;
}
}
erwägen, Ihre Beschreibung neu zu schreiben. –
Was ist, wenn random == populate [b] == populate [i]? Ich würde überdenken, wie Sie das Array verwenden. Tipp: Denken Sie an Hash-Datenstruktur. – dbustosp
in populate(), macht die innere for-Schleife absolut nichts. populate [i] ist bereits vor der Schleife zufällig zugewiesen. Ich nehme an, Sie hatten die Aufgabe versehentlich. – Shiping