elemente von 2 listen vergleichen

javama

Erfahrenes Mitglied
Hallo,
ich habe 2 listen <String> , Liste A und Liste B. wenn ein element aus B nicht in A vorkommt dann gibt false, und möchte dass alle element veglichen werden ohne das die For-schleife beim ersten fall abgebrochen wird.
Ich möchte dass alle elemente geprüft werden
Nehmen wir an dass die listen schon gefüllt sind

Java:
public boolean myMethod(){
  for (int x = 0; x < listA.size(); x++) {
	        
	        for (int y = 0; y < listB.size(); y++) {
	        if(!listA.get(x).equals(listB.get(y))) {
	        return false;
		}
	
	       }
	     }
	   
	return true;

		
	}
}
 
Zuletzt bearbeitet von einem Moderator:
Ich würde an deiner stelle eine Liste vor der schleife erstellen, in diese addest du dann die nicht identischen ids, diese könntest du dann löschen oder sonstiges tun

Code:
public boolean myMethod(){
ArrayList<Integer> list = new ArrayList<Integer>();
  for (int x = 0; x < listA.size(); x++) {
            
            for (int y = 0; y < listB.size(); y++) {
            if(!listA.get(x).equals(listB.get(y))) {
            list.add(y);
//return false;
        }
    
           }
         }
       
    return true;
 
        
    }
}
 
Wenn du nur willst, das am Ende false rauskommt, speicher die boolean doch in einer variablen anstatt direkt ein return zu machen :), und achte bitte auf Code-Formatierung

Java:
public boolean myMethod(){
    for (int x = 0; x < listA.size(); x++) {           
        for (int y = 0; y < listB.size(); y++) {
            if(!listA.get(x).equals(listB.get(y))) {
                return false; // diese in eine boolean variable speichern
            } // ende if
        } // ende 2. for
    }  // ende 1. for
    return true; // hier die gespeicherte boolean zurueckgeben 
    } // wo kommt diese Klammer her?
} // ende Methode
 
Wenn du nur willst, das am Ende false rauskommt, speicher die boolean doch in einer variablen anstatt direkt ein return zu machen :), und achte bitte auf Code-Formatierung

Java:
public boolean myMethod(){
    for (int x = 0; x < listA.size(); x++) {           
        for (int y = 0; y < listB.size(); y++) {
            if(!listA.get(x).equals(listB.get(y))) {
                return false; // diese in eine boolean variable speichern
            } // ende if
        } // ende 2. for
    }  // ende 1. for
    return true; // hier die gespeicherte boolean zurueckgeben 
    } // wo kommt diese Klammer her?
} // ende Methode

Leicht übertrieben die Kommentare oder ;)
 
@HonniCilest
Ich glaube damit könnte man sogar das Problem der unterschiedlichen Länge umgehen. Aber wie man jetzt an den Index kommt? Über den for()-Zähler ? Wäre eine möglichkeit.

@TO
Muss die Methoden-Signatur unbedingt "boolean" sein ? Ich meine klar : wenn du nur prüfen willst ob alle elemente in B auch in A vorkommen macht das sicher Sinn. Aber wenn diese Methode jetzt false liefert hast du ja den Index immer noch nicht. Hier wäre also ein numerischer return-Type sinnvoll da du dadurch gleich den Index hast.
 
Zurück