api:documentation:collections:start
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
— | api:documentation:collections:start [2024/08/31 10:03] (aktuell) – angelegt - Externe Bearbeitung 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ====== Collections ====== | ||
+ | <WRAP center round info 80%> | ||
+ | Das **Collections-Framework** bietet Klassen zum Speichern von Listen, Maps (Schlüssel-Wert-Speicher), | ||
+ | <code myJava> | ||
+ | ArrayList< | ||
+ | liste.add(" | ||
+ | String t = liste.get(0); | ||
+ | </ | ||
+ | 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(); | ||
+ | liste.add(" | ||
+ | String t = < | ||
+ | </ | ||
+ | </ | ||
+ | \\ \\ | ||
+ | |||
+ | |||
+ | ===== ArrayList ===== | ||
+ | <WRAP center round info 80%> | ||
+ | ArrayLists sind Listen, bei denen man in konstanter Zeit auf das i-te Element lesend zugreifen kann. Dafür ist das Speichern von Werten manchmal etwas langsamer. \\ \\ | ||
+ | Im " | ||
+ | Der Vorteil von ArrayLists gegenüber Arrays besteht darin, dass Anfangs keine Maximalgröße festgelegt werden muss. Dafür brauchen die ArrayLists etwas mehr Speicher als Arrays und sind etwas langsamer. | ||
+ | **Methoden: | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | </ | ||
+ | |||
+ | |||
+ | < | ||
+ | |||
+ | <div class=" | ||
+ | |||
+ | <script type=" | ||
+ | // Das < | ||
+ | ArrayList< | ||
+ | |||
+ | println(" | ||
+ | while(true) { | ||
+ | | ||
+ | | ||
+ | namen.add(name); | ||
+ | } else { | ||
+ | break; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | for(int i = 0; i < namen.size(); | ||
+ | | ||
+ | } | ||
+ | |||
+ | println(" | ||
+ | Collections.shuffle(namen); | ||
+ | for (int i = 0; i < namen.size(); | ||
+ | | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | </ | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Vereinfachte for-Wiederholung ===== | ||
+ | |||
+ | < | ||
+ | |||
+ | <div class=" | ||
+ | |||
+ | <script type=" | ||
+ | ArrayList< | ||
+ | |||
+ | println(" | ||
+ | while(true) { | ||
+ | | ||
+ | | ||
+ | namen.add(name); | ||
+ | } else { | ||
+ | break; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // Will man über alle Elemente eines Arrays iterieren, so geht das am besten mit | ||
+ | // der vereinfachten for-Wiederholung | ||
+ | for(String n: namen) { // Lies: "Für alle Strings n aus namen" | ||
+ | | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | </ | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | ===== HashMap ===== | ||
+ | <WRAP center round info 80%> | ||
+ | Hashmaps verwendet man, um Schlüssel-Wert-Paare zu speichern. Sie können bei Angabe des Schlüssels den passenden Wert finden und zurückgeben. | ||
+ | * Die Methode put(schlüssel, | ||
+ | * Die Methode get(schlüssel) liefert den zum Schlüssel gehörenden Wert zurück. | ||
+ | Wird zu einem in der '' | ||
+ | **Methoden: | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | </ | ||
+ | |||
+ | |||
+ | < | ||
+ | |||
+ | <div class=" | ||
+ | |||
+ | <script type=" | ||
+ | HashMap< | ||
+ | |||
+ | berghöhenMap.put(" | ||
+ | berghöhenMap.put(" | ||
+ | berghöhenMap.put(" | ||
+ | berghöhenMap.put(" | ||
+ | |||
+ | while(true) { | ||
+ | | ||
+ | | ||
+ | |||
+ | | ||
+ | println(" | ||
+ | } else { | ||
+ | println(" | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | </ | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | ===== HashSet ===== | ||
+ | <WRAP center round info 80%> | ||
+ | HashSets bilden Mengen aus der Mathematik nach. Wie diese können sie Elemente speichern, jedoch jedes höchstens ein Mal. \\ \\ | ||
+ | **Methoden: | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | </ | ||
+ | |||
+ | |||
+ | < | ||
+ | |||
+ | <div class=" | ||
+ | |||
+ | <script type=" | ||
+ | HashSet< | ||
+ | |||
+ | set.add(" | ||
+ | set.add(" | ||
+ | set.add(" | ||
+ | set.add(" | ||
+ | |||
+ | for(String name : set) { | ||
+ | | ||
+ | } | ||
+ | |||
+ | println(); | ||
+ | println(set.contains(" | ||
+ | println(set.contains(" | ||
+ | |||
+ | println(); | ||
+ | set.remove(" | ||
+ | for(String name : set) { | ||
+ | | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | </ | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Stack ===== | ||
+ | <WRAP center round info 80%> | ||
+ | Ein '' | ||
+ | Reihenfolge zurück, d.h. immer das oberste zuerst. | ||
+ | **Methoden: | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | < | ||
+ | |||
+ | <div class=" | ||
+ | |||
+ | <script type=" | ||
+ | Stack< | ||
+ | |||
+ | st.push(" | ||
+ | st.push(" | ||
+ | st.push(" | ||
+ | st.push(" | ||
+ | |||
+ | println(st.pop()); | ||
+ | println(st.pop()); | ||
+ | |||
+ | st.push(" | ||
+ | println(st.pop()); | ||
+ | println(st.pop()); | ||
+ | </ | ||
+ | |||
+ | </ | ||
+ | |||
+ | </ | ||
+ | |||
+ | ===== LinkedList ===== | ||
+ | <WRAP center round info 80%> | ||
+ | Eine '' | ||
+ | **Methoden: | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | </ | ||
+ | |||
+ | |||
+ | < | ||
+ | |||
+ | <div class=" | ||
+ | |||
+ | <script type=" | ||
+ | LinkedList< | ||
+ | |||
+ | liste.addFirst(" | ||
+ | liste.addFirst(" | ||
+ | liste.addFirst(" | ||
+ | liste.addLast(" | ||
+ | |||
+ | println(liste.removeFirst()); | ||
+ | println(liste.removeLast()); | ||
+ | |||
+ | println(" | ||
+ | </ | ||
+ | |||
+ | </ | ||
+ | |||
+ | </ | ||