java.util.List
Transcription
java.util.List
Max Weller java.util.List Freitag, 1. Oktober 2010 11:57 Mit einer Liste kann man mehrere Variablen unter einem Namen speichern (wie mit einem Array) Unterschied: bei einer Liste kann man dynamisch Elemente einfügen+löschen. List ist ein Interface -- um eine zu erstellen, z.B. ArrayList verwenden java.util.ArrayList lst = new java.util.ArrayList(); geht aus diesem Grund NICHT: java.util.List lst = new java.util.List(); Anzahl der Elemente int elementCount = lst.size(); alle durchgehen java.util.List lst = new java.util.ArrayList(); // Liste befüllen ... Object obj; for (int i = 0; i<lst.size(); i++) { obj = lst.get(i); // irgendwas mit obj anstellen -- je nach Typ // wären in obj nur Strings gespeichert, könnte man … String str = (String) lst.get(i); // … und diesen ausgeben System.out.println(str + "\n"); } Einfacher - mit der ForEach-Schleife java.util.List lst = new java.util.ArrayList(); // Liste befüllen … for (Object obj : lst) { // irgendwas mit obj anstellen -- siehe oben } Liste modifizieren Object obj = "something"; int position = 42; Neues Item einfügen: Item an Position ersetzen: Item löschen: Ausleeren: lst.add(obj); lst.set(position, obj); lst.remove(position); lst.clear(); Element suchen lst.contains(obj) gibt true aus, wenn das Element irgendwo in der Liste ist lst.indexOf(obj) gibt den Index zurück, an welcher Stelle es in der Liste liegt oder -1 wenn es nicht gefunden wurde Beispiel: alle würmer durchgehen + nächsten finden java.util.List worms = getWorld().getObjects(Worm.class); Double curDist,dist=Double.MAX_VALUE; Worm worm; int x,y,idx=-1; for (int i = 0; i<worms.size(); i++) { worm = (Worm)worms.get(i); if (!worm.getVisible()) continue; x=worm.getX(); y= worm.getY(); curDist = getDistanceTo(x,y); if (curDist<dist) { idx=i; curDist=dist; } } // Resultat: in idx steht der Index des nächstliegenden Wurmes // mit worms.get(idx) erhält man ihn und kann dann hinwandern // siehe Szenario intelli-crab