Listenelement vergleichen

  • Themenstarter Themenstarter frooogi
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
F

frooogi

Gast
hallo,

wie kann ich prüfen ob z.B. ein String in der Liste vorhanden ist?

habe eine LinkedList.

list.conatins(Object o) ? liefert true wenn object vorhanden? und wenn ich es als Streing will muss ich es dann Casten?

also so list.contains((String) o) ??

danke
 
Der Cast ist überflüssig. Die Method liefert dann true, wenn die Liste ein Element enthält, dessen equals-Methode mit dem Object o aufgerufen true ergibt. Ob o jetzt ein String oder irgendein anderes Object ist, spielt dafür erstmal keine Rolle.
 
Murray hat gesagt.:
Der Cast ist überflüssig. Die Method liefert dann true, wenn die Liste ein Element enthält, dessen equals-Methode mit dem Object o aufgerufen true ergibt. Ob o jetzt ein String oder irgendein anderes Object ist, spielt dafür erstmal keine Rolle.

also ich wiß nicht wieso das nicht klappt... habe folgendes:

Code:
static boolean  nameVorhanden=true;

public void nameVorhanden(String name){
	   
	   for(Object o: liste)
		   
		   if(o.equals(name)){
			   
			   nameVorhanden=false;
			   
		   }
			   
   }


         andereMethode(String name){

                                 nameVorhanden(name);
				if(nameVorhanden){

                                                         name nicht vorhanden}

                                  else  {name vorhanden}

}


ist nicht der vollständige Code, aber es geht nur um das... danke
 
Du verwendest also nicht contains, sondern programmierst Dir eine eigene Methode? Warum das denn?

Aber egal... es klappt nicht, weil Du das nameVorhanden als Variable merkst und diese a) beim Aufruf der Method nicht wieder mit false vorbelegst und b) ohnehin in der Methode die Logik verdrehst: wenn für ein Object equals erfüllt ist, dann ist der Name doch vorhanden, oder nicht?

So sollte es gehen:

Code:
public boolean nameVorhanden( String name) {

   for (Object o : liste) {
      if ( o.equals( name)) return true;
   }
   return false;
}

public andereMethode(String name){

            
    if( nameVorhanden( name)) {
      // name vorhanden
    }else {
      // name nicht vorhanden
    }
}
 
Murray hat gesagt.:
Du verwendest also nicht contains, sondern programmierst Dir eine eigene Methode? Warum das denn?



Oh wußte ich nicht, wie verwende ich diese denn in diesem Fall? danke
 
ok. ich hab da aber noch ein anderes Problem. und zwar klappt das ja mit dem contains nur wenn ich,
ein Element in die Liste immer hineinstecke, was ist aber wenn ich mehrere Strings gleichzeitig in die Liste lege, wie kann ich dann nach einem Wort suchen.?

also wenn ich

Code:
 list.add("franz" +" 23"+" ledig")

wie kann ich nun hier nach franz suchen, bzw. testen ob franz drin ist? geht so was?


danke
 
Dafür brauchst Du dann doch eine eigene Methode
Code:
public boolean nameVorhanden( String name) {

   for (Object o : liste) {
      if ( o.toString().contains( name)) return true;  //-- Variante für JDK >= 1.5
      //if ( o.toString().indexOf( name) > -1) return true;  //--- Variante für JDK < 1.5
   }
   return false;
}
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben