Skip to content
On this page
7. Arrays und Lists
1

Arrays und Lists

23.04.2023
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