Benutzer-Werkzeuge

Webseiten-Werkzeuge


api:documentation:collections:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
api:documentation:collections:start [2021/02/05 10:03] Martin Pabstapi:documentation:collections:start [2023/06/12 08:28] (aktuell) – [ArrayList] Martin Pabst
Zeile 1: Zeile 1:
 ====== Collections ====== ====== Collections ======
-<WRAP center round info 60%> +<WRAP center round info 80%> 
-Das **Collections-Framework** bietet Klassen zum Speichern von Listen, Maps (Schlüssel-Wert-Speicher), Sets (Mengen) und Stacks (Stapelspeichern). Mit Hilfe von **Generics** kann man den Datentyp der zu speichernden Objekte bei der Deklaration der Collection angeben, so dass man die Daten ohne Casten gleich mit dem richtigen Datentyp zurückerhält. \\ \\ +Das **Collections-Framework** bietet Klassen zum Speichern von Listen, Maps (Schlüssel-Wert-Speicher), Sets (Mengen) und Stacks (Stapelspeichern). Mit Hilfe von **Generics** kann man den Datentyp der zu speichernden Objekte bei der Deklaration der Collection angeben, so dass man die Daten ohne Casten gleich mit dem richtigen Datentyp zurückerhält, z.B. 
 +<code myJava> 
 +ArrayList<String> liste = new ArrayList<>();    // <String> bedeutet: Diese ArrayList speichert Objekte der Klasse String.  
 +liste.add("Test"); 
 +String t = liste.get(0); 
 +</code> 
 +Man kann alle Collections-Klassen aber auch ohne Generic-Syntax nutzen, muss dann beim Entnehmen der Objekte aber auf den korrekten Datentyp casten, z.B. 
 +<code myJava> 
 +ArrayList liste = new ArrayList();    // Diese Liste speichert beliebige Objekte  
 +liste.add("Test"); 
 +String t = <String>liste.get(0); 
 +</code>
 </WRAP> </WRAP>
 + \\ \\ 
  
  
Zeile 43: Zeile 55:
  
 for(int i = 0; i < namen.size(); i++) { for(int i = 0; i < namen.size(); i++) {
 +   println(namen.get(i));
 +}
 +
 +println("\nUnd jetzt zufällig vertauscht:");
 +Collections.shuffle(namen);
 +for (int i = 0; i < namen.size(); i++) {
    println(namen.get(i));    println(namen.get(i));
 } }
Zeile 199: Zeile 217:
  
 <script type="text/plain" title="StackExample.java"> <script type="text/plain" title="StackExample.java">
-Stack<String> st = new Stack();+Stack<String> st = new Stack();    // Das <String> bedeutet: Auf diesem Stack können Strings abgelegt werden.
  
 st.push("1. Element"); st.push("1. Element");
Zeile 218: Zeile 236:
 </HTML> </HTML>
  
 +===== LinkedList =====
 +<WRAP center round info 80%>
 +Eine ''LinkedList'' ist eine Liste, bei der man Elemente an beiden Enden beliebig hinzufügen oder wegnehmen kann. Im Gegensatz zu einer [[#ArrayList|ArrayList]] wird zum Speichern der Liste aber kein Array verwendet, sondern jedes Element wird in ein "Knoten-Objekt" verpackt und diese speichern zusätzlich Referenzen auf den Vorgänger- und Nachfolgerknoten, [[https://de.wikipedia.org/wiki/Liste_(Datenstruktur)|siehe auch den Wikipedia-Artikel hier.]] \\ \\ 
 +**Methoden:**
 +  * ''add(element)'' fügt am Ende der Liste ein Element hinzu
 +  * ''addLast(element)'' wirkt identisch zu ''add''
 +  * ''push(element)'' wirkt identisch zu ''add''
 +  * ''addFirst(element)'' fügt am Ende der Liste ein Element hinzu
 +  * ''poll()'' entnimmt das Element am Kopf der Liste und gibt es zurück.
 +  * ''peek()'' gibt das Element am Kopf der Liste zurück, verändert die Liste aber dabei nicht.
 +  * ''removeFirstOccurrence(element)'' löscht das erste Element der Liste, das gleich dem übergebenen Element ist.
 +  * ''removeLastOccurrence(element)'' löscht das letzte Element der Liste, das gleich dem übergebenen Element ist.
 +  * ''removeFirst()'' Entnimmt das Element am Anfang der Liste und gibt es zurück.
 +  * ''removeLast()'' Entnimmt das Element am Ende der Liste und gibt es zurück.
 +  * ''pop()'' wirkt identisch zu ''removeLast''.
 +  * ''peekFirst()'' gibt das Element am Anfang der Liste zurück, verändert die Liste aber nicht.
 +  * ''peekLast()'' gibt das Element am Ende der Liste zurück, verändert die Liste aber nicht.
 +  * ''size()'' gibt die Anzahl der Elemente in der Liste zurück
 +  * ''remove(element)'' entfernt - falls vorhanden - das Element aus der Liste.
 +  * ''remove(index)'' entfernt das Element mit dem angegebenen Index aus der Liste
 +  * ''clear()'' entfernt alle Elemente aus der Liste.
 +  * ''contains(element)'' gibt genau dann ''true'' zurück, wenn die Liste das Element enthält.
 +  * ''indexOf(element)'': Falls das Element in der Liste enthalten ist, wird der Index des Elements zurückgegeben, ansonsten -1.
 +  * ''addAll(liste)'' fügt der Liste alle Elemente der übergebenen Liste hinzu. Letztere wird dabei nicht verändert.
 +</WRAP>
 +
 +
 +<HTML>
 +
 +<div class="java-online" style="height: 400px; width: 100%" data-java-online="{'withBottomPanel': false, 'id': 'LinkedListExample'}">
 +
 +<script type="text/plain" title="LinkedListExample.java">
 +LinkedList<String> liste = new LinkedList<>();
 +
 +liste.addFirst("Element 1");
 +liste.addFirst("Element 2");
 +liste.addFirst("Element 3");
 +liste.addLast("Element 0");
 +
 +println(liste.removeFirst());
 +println(liste.removeLast());
 +
 +println("Rest der Liste: " + liste);
 +</script>
 +
 +</div>
 +
 +</HTML>
  
api/documentation/collections/start.1612515819.txt.gz · Zuletzt geändert: 2021/12/29 11:29 (Externe Bearbeitung)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki