Anmeldung Registrierung
Auto Hell Dunkel
Erweiterte Suche
  1. Startseite
  2. Podcasts
  3. IT-Berufe-Podcast Podcast
  4. Arrays und Listen (Lernzielkontrolle) – Anwendungsentwickler-Podcast #99
Arrays und Listen (Lernzielkontrolle) – Anwendungsentwickler-Podcast #99

Arrays und Listen (Lernzielkontrolle) – Anwendungsentwickler-Podcast #99

IT-Berufe-Podcast vor 9 Jahren
Zu Sammlung hinzufügen

Du hast noch keine Sammlungen.

Herunterladen (rechte Maustaste) Teilen Fundstellen Kommentare
0:00
41:44
Nach langer Zeit setze ich meine Reihe der Lernzielkontrollen zur
Programmierung mit einem wichtigen Thema fort. Arrays und Listen
sind der Inhalt der neunundneunzigsten Episode des
Anwendungsentwickler-Podcasts. TL;DR Mit meinen Fragen zu Arrays
und Collections kannst du als IT-Azubi dein Wissen über
Datenstrukturen prüfen. Arrays speichern mehrere Werte eines
Datentyps bei fester Länge; beim Zugriff über nullbasierte Indizes
reicht der gültige Bereich von 0 bis length - 1. Listen lassen sich
nachträglich erweitern und bieten Methoden, mit denen du ihre
Inhalte bearbeiten kannst. Für die Praxis greife ich meist zur
Liste, während du für die Prüfung auch verstehen solltest, wie
ArrayList und LinkedList intern arbeiten, wie Sets eindeutige
Elemente sicherstellen und wie Maps Werte über Schlüssel zugänglich
machen. Kapitelmarken [00:00:00] Lernzielkontrolle zu Arrays und
Collections [00:01:50] Was ist ein Array? [00:04:10] Die Länge
eines Arrays abfragen [00:04:55] Feste Arraygröße und Aufwand beim
Kopieren [00:07:18] Indexzugriff und nullbasierte Indizes
[00:10:12] Arrays mit einer For-Schleife durchlaufen [00:10:47]
Arraytypen mit eckigen Klammern deklarieren [00:11:45]
For-Each-Schleifen und ihre Einsatzbereiche [00:14:49]
Mehrdimensionale Arrays [00:17:13] Assoziative Arrays und
Schlüssel-Wert-Paare [00:19:30] Listen und ihre Methoden [00:23:02]
ArrayList und LinkedList intern [00:26:02] List als gemeinsames
Interface und Polymorphie [00:26:33] Knoten einer verketteten Liste
[00:27:22] Generische Listen und Typsicherheit [00:28:58] Laufzeit
und Einsatzbereiche der Listenvarianten [00:33:05] Arrays und
Listen in der Praxis [00:34:08] Sets für eindeutige Elemente
[00:35:08] Maps, Dictionaries und Hashes [00:36:58] Praxistipps und
APIs kennenlernen [00:37:55] Bücher zu Arrays und Collections
[00:39:27] Fragen für die 100. Episode [00:40:24] Shownotes und
Newsletter Inhalt Was ist ein Array? Eine Liste mehrerer Werte des
gleichen Datentyps. Wie findet man heraus, wie viele Elemente ein
Array enthält? Arrays haben eine Eigenschaft "Länge", die in Java
z.B. length heißt. Wie kann man die Länge eines Arrays verändern?
Gar nicht. Arrays sind nicht redimensionierbar. Wie greift man auf
die Elemente in einem Array zu? Viele Programmiersprachen bieten
für den Zugriff auf die Elemente eines Arrays die Schreibweise mit
eckigen Klammern an, z.B. myArray[2]. Der Index ist meistens
0-basiert. Wie iteriert man über die Elemente eines Arrays? Mit
Schleifen wie der for-Schleife. Einige Programmiersprachen bieten
auch eine foreach-Schleife (in Java "extended for") an, die ohne
Indizes arbeitet und nur die Elemente durchläuft. Was ist eine
foreach-Schleife? Sie durchläuft alle Elemente eines Arrays und
weist sie nach und nach einer Iterationsvariablen zu. Dadurch muss
sich der Entwickler nicht um die Indizes kümmern. Was ist ein
mehrdimensionales Array? Ein Array kann nicht nur eine Dimension
haben, sondern mehrere. Bis zur dritten kann man sich dieses
Konstrukt noch vorstellen (2. Tabelle, 3. Würfel). Was ist ein
assoziatives Array? Ein zweidimensionales Array, das anstatt
numerischer Indizes beliebige Datentypen als Schlüssel zulässt. Was
ist eine Liste? Eine Liste ist quasi ein intelligentes Array. Sie
stellt Funktionen zur Manipulation bereit und ist
redimensionierbar. Was unterscheidet eine verkettete Liste
(LinkedList) von einer Array-Liste (ArrayList)? Die Art der
Implementierung. Verkettete Listen sind schnell beim Einfügen und
langsam beim Zugriff, Array-Listen sind langsam beim Einfügen und
schnell beim Zugriff. Wann sollte man Arrays und wann Listen
verwenden? Wenn es keinen guten Grund dagegen gibt, sollte man
immer Listen verwenden, da sie deutlich einfacher zu verwenden sind
und zahlreiche Funktionen bereitstellen. Was ist ein Set? Eine
Liste mit eindeutigen Elementen. Was ist eine Map? Das gleiche wie
ein assoziatives Array, aber als eigene Datenstruktur
implementiert. Es handelt sich um Schlüssel/Wert-Paare auf die über
die Schlüssel zugegriffen werden kann. Literaturempfehlungen Eine
sehr ausführliche Einführung in Listen und andere Datenstrukturen
aus der Collection-API bietet die gute alte Java-Insel*. *(direkt
beim Rheinwerk-Verlag bestellen*) Links Permalink zu dieser
Podcast-Episode RSS-Feed des Podcasts Arrays Listen Assoziative
Speicher Zusammenfassung Arrays: Werte speichern und darauf
zugreifen Wenn ich fünf Ganzzahlen zusammen speichern möchte, kann
ich dafür ein Array mit fünf Elementen anlegen. Über eine Variable
erreiche ich sämtliche Werte und kann sie mit einer Schleife
durchlaufen. In statisch typisierten Sprachen wie Java haben die
Elemente eines Arrays denselben Datentyp. Mit eckigen Klammern
kennzeichnest du in vielen Programmiersprachen den Arraytyp. int[]
steht beispielsweise für ein Integer-Array. Auch eigene Objekttypen
können als Elementtyp dienen. Über die Länge erfährst du, wie viele
Elemente das Array hat. In Java steht sie im Attribut length. Die
Länge wird beim Anlegen festgelegt und bleibt anschließend
unverändert. Für eine andere Größe legst du ein neues Array an und
kopierst die vorhandenen Werte hinein. Währenddessen beanspruchen
beide Arrays Speicher, wobei das Kopieren zusätzlich Zeit kostet.
Bei bekannter, dauerhaft fester Größe ermöglicht ein Array einen
schnellen direkten Zugriff und arbeitet speichereffizient. Mit
meinArray[index] greifst du in vielen Sprachen auf ein einzelnes
Element zu. Bei nullbasierten Indizes liegt das erste Element an
Position 0. Hat das Array fünf Elemente, ist 4 der letzte gültige
Index. Ob die Indizes bei null beginnen, hängt von der
Programmiersprache ab. Arrays mit Schleifen durchlaufen In einer
klassischen For-Schleife beginnst du bei einem nullbasierten Array
mit dem Index 0 und zählst bis length - 1. Die Schleifenbedingung
lautet entsprechend index < meinArray.length. Wenn du bis
einschließlich length zählst, greifst du auf eine Position
außerhalb des Arrays zu. Java meldet dafür eine
ArrayIndexOutOfBoundsException. Bei einer For-Each-Schleife
erhältst du jedes Element nacheinander in einer Schleifenvariable.
Die Schleife übernimmt das Weitergehen und berücksichtigt die
Grenzen des Arrays. In Java heißt diese Variante erweiterte
For-Schleife. Wenn ich beispielsweise gelesene Benutzer:innen auf
einer Website ausgeben möchte, reicht es, die Elemente einzeln zu
verarbeiten. Dafür eignet sich For-Each. Für Aufgaben, bei denen du
die Position eines Elements brauchst oder Elemente gezielt
umordnest, führst du den Index mit einer passenden Schleife selbst
mit. Mehrdimensionale Arrays Mit int[][] kannst du ein Array
anlegen, dessen Elemente wiederum Arrays sind. Zwei Dimensionen
lassen sich als Tabelle mit Zeilen und Spalten vorstellen. Bei drei
Dimensionen hilft das Bild eines Würfels; weitere Dimensionen sind
ebenfalls möglich. Wenn du in Java das äußere Array durchläufst,
erhältst du jeweils ein inneres Array mit eigener Länge. Auf dessen
Elemente kannst du anschließend über einen weiteren Index
zugreifen. Assoziative Arrays Über einen Schlüssel wie "Name"
kannst du einen zugeordneten Wert erreichen. Diese Form heißt
assoziatives Array und begegnet dir beispielsweise in PHP.
Schlüssel und Werte bilden zusammen ein Paar. Welche Datentypen
dafür infrage kommen, hängt von der jeweiligen Sprache und
Datenstruktur ab. Für Schlüssel und Wert können unterschiedliche
Typen vorgesehen sein. Listen im Alltag Wenn du nach einem
Nachnamen in einer Datenbank suchst, steht die Zahl der Treffer
erst nach der Abfrage fest. In einer Liste kannst du die gefundenen
Werte nachträglich hinzufügen und später wieder entfernen. Listen
sind zunächst eindimensional, wobei ihre Elemente selbst wieder
Listen sein können. Je nach Programmiersprache bietet dir die Liste
Methoden, mit denen du beispielsweise: einen Wert an einer
bestimmten Position einfügst oder abfragst, einzelne Elemente
entfernst, die gesamte Liste leerst, nach einem enthaltenen Wert
suchst, die Elemente sortierst. Für meine alltäglichen Programme
greife ich meist zu Listen, weil ich damit wechselnde Mengen von
Werten bearbeiten kann. Arrays kommen unter anderem infrage, wenn
die Größe dauerhaft feststeht oder du hardwarenah mit Sprachen wie
C oder C++ arbeitest. ArrayList Im Inneren einer ArrayList liegen
die Werte in einem Array. Wenn dessen Kapazität ausgeschöpft ist,
wird ein größeres Array angelegt und der Inhalt dorthin kopiert.
Dabei kann die Kapazität um mehrere Plätze auf einmal wachsen,
damit weitere Elemente zunächst Platz haben. Über einen Index
erreicht die ArrayList ein Element in konstanter Zeit. Das
Vergrößern des internen Arrays kostet Zeit und zusätzlichen
Speicher; beim Einfügen innerhalb der Liste müssen vorhandene
Elemente verschoben werden. Für häufige direkte Zugriffe auf
bestimmte Positionen eignet sich diese Struktur. LinkedList Eine
verkettete Liste arbeitet mit Knoten, die jeweils einen Wert und
einen Verweis auf den nächsten Knoten enthalten. Ausgehend vom
ersten Knoten lässt sich die Liste Schritt für Schritt durchlaufen.
Beim letzten Knoten endet die Kette. Um einen neuen Knoten
einzufügen, werden die betreffenden Verweise angepasst. Für den
Zugriff auf eine bestimmte Position müssen die Knoten bis zur
gesuchten Stelle durchlaufen werden. Die Struktur eignet sich daher
für Aufgaben, bei denen du häufig Elemente hinzufügst und mit den
Verknüpfungen arbeitest. Gemeinsames Interface und generische Typen
In Java implementieren ArrayList und LinkedList das Interface List.
Wenn ich meinen Code gegen dieses Interface schreibe, kann ich die
konkrete Listenklasse austauschen, während die aufgerufenen
Listenmethoden gleich bleiben. Das ist ein Beispiel für
Polymorphie. Mit einem Typparameter legst du fest, welche Elemente
eine generische Liste aufnehmen kann. List enthält Integer-Werte.
Versuchst du, einen String einzufügen, weist der Compiler den
falschen Typ zurück....
Episode melden

„Arrays und Listen (Lernzielkontrolle) – Anwendungsentwickler-Podcast #99“

Worum geht es? Danach fragen wir noch nach dem Grund.

Teilen

Mein Archiv

Deine Privatkopie der Folgen, die du nicht verlieren willst.

Podcast-Folgen verschwinden. Feeds werden auf die letzten Episoden gekürzt, Hoster räumen alte Dateien ab, Formate wechseln den Anbieter und lassen ihr Archiv zurück. Mit „Mein Archiv“ sichert podcast.de die Folgen deiner Podcasts für dich — angefangen bei den ältesten, denn die sind zuerst weg.

  • Deine gesicherten Folgen bleiben hörbar, auch wenn das Original offline geht.
  • Auch Folgen, die im heutigen Feed gar nicht mehr stehen — podcast.de kennt sie noch.
  • Herunterladen bleibt möglich, solange die Folge beim Podcaster liegt. Der zählt seine Abrufe wie bisher.
Startet bald

Sei beim Start von Mein Archiv dabei

Mein Archiv ist fast fertig. Trag dich ein, dann bekommst du eine E-Mail, sobald es losgeht – und bist von Anfang an dabei. Wir schreiben dir nur zum Start, keine Werbung, keine Weitergabe deiner Daten.

Du bekommst zuerst eine Bestätigungsmail. Abmelden geht jederzeit. Datenschutz