Appearance
7. Arrays und Lists
2
Arrays #
- Arrays sind "rigide" Strukturen
- Einmal erstellt, kann die Grösse nicht mehr geändert werden.
java
int[] numbers = new int[100]; // int array mit 100 elementen
// alle mit 0 initialisiert
Waveform[] waveforms = new Waveform[100];
// alle mit null initialisiert
23.04.2023
7. Arrays und Lists
3
Arrays und deren Elemente #
Beim erstellen eines Arrays mit N
Elementen wird platz für diese N
Elemente reserviert.
Die Elemente selber werden aber nicht initialisiert, sind daher bei Objekten default auf null
initialisiert.
23.04.2023
7. Arrays und Lists
4
Beispiel mit null
#
java
Waveform[] waveforms = new Waveform[100];
System.out.println("Element an der Stelle 20: " + waveForms[20]);
// Ausgabe: Element an der Stelle 20: null
23.04.2023
7. Arrays und Lists
5
Elemente müssen von Hand initialisiert werden #
java
Waveform[] waveforms = new Waveform[100];
waveforms[0] = new Sinusform();
waveforms[1] = new Sinusform();
waveforms[2] = new Sinusform();
waveforms[3] = new Sinusform();
23.04.2023
7. Arrays und Lists
6
Shortcut: Elemente sofort initialisieren #
java
Waveform[] waveForms = new Waveform[] {
new Sinusform(),
new Rectform(),
new Sawtoothform(),
new Rampform(),
new Triangleform(),
new SinSquare()
};
23.04.2023
7. Arrays und Lists
7
Listen #
Listen sind flexibler als Arrays. Sie können zur Laufzeit vergrössert und verkleinert werden.
23.04.2023
7. Arrays und Lists
8
Liste von int
#
java
List<Integer> numberList = new ArrayList<Integer>();
numberList.add(20);
numberList.add(1);
numberList.add(5);
23.04.2023
7. Arrays und Lists
9
List<Type>
#
Eine Liste hat immer einen Datentypen, dieser wird wird als Generic
in den Diamond <>
Operatoren mitgegeben.
Es gibt unterschiedliche Implementierungen von Listen, welche alle von List
erben. Wir verwenden in unseren Beispielen ArrayList
.
23.04.2023
7. Arrays und Lists
10
Primitive Datentypen #
Listen können keine "primitiven" Datentypen aufnehmen und verwenden immer die Entsprechenden Klassen (Integer
anstelle von int
, Double
anstelle von double
).
Listen können wie Arrays auch mit Objekten gefüllt werden.
java
List<Integer> numberList = new ArrayList<Integer>();
List<Waveform> waveforms = new ArrayList<Waveform>();
23.04.2023
7. Arrays und Lists
11
Initialisierung #
Listen werden by default mit der Länge 0 initialisiert.
23.04.2023
7. Arrays und Lists
12
Arbeiten mit Listen #
Methode | |
---|---|
void add(T element) | Fügt ein neues Element hinzu |
void remove(T element) | Findet und entfernt das Element |
void remove(int idx) | Findet und entfernt das Element an der Stelle idx |
boolean contains(T element) | gibt true zurück, falls das Element in der Liste vorhanden ist. |
int size() | Gibt die momentane Länge der Liste zurück |
void clear() | Löscht alle Elemente aus der Liste raus |
T[] toArray(T[] type) | Gibt ein Array mit den Elementen der Liste zurück |
23.04.2023
7. Arrays und Lists
13
toArray
#
Eine wichtige Methode ist toArray
. Sie gibt ein Array mit allen Elementen der Liste zurück, was sehr hilfreich sein kein, falls man mit Arrays arbeiten möchte / muss.
java
List<Integer> numberList = new ArrayList<Integer>();
numberList.add(20);
numberList.add(1);
numberList.add(5);
Integer[] numbers = numberList.toArray(new Integer[] {});
23.04.2023