Benutzer-Werkzeuge

Webseiten-Werkzeuge


anhang: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
anhang:collections:start [2024/12/15 19:23] Martin Pabstanhang:collections:start [2024/12/17 11:17] (aktuell) – [Aufgaben] Martin Pabst
Zeile 11: Zeile 11:
 Zu den obigen Klassen/Interfaces: Zu den obigen Klassen/Interfaces:
   * Grün gefüllt sind Interfaces, blau gefüllt sind Klassen.   * Grün gefüllt sind Interfaces, blau gefüllt sind Klassen.
 +  * Die Klassen ''LinkedList'' und ''ArrayList'' unterscheiden sich vor allem in der Zugriffszeit ihrer Methoden. 
 +    * ''LinkedList'' basiert auf einer verketteten Liste. Sie ermöglicht Einfügen/Löschen in konstanter Zeit, ist aber langsam beim Zugriff auf's i-te Element und verbraucht zusätzlichen Speicherplatz zur Speicherung der verketteten Knoten-Objekte. 
 +    * ''ArrayList'' basiert auf einem Array. Ist es zu klein, wir ein größeres reserviert und umkopiert. \\ ''ArrayList'' ist schnell beim Zugriff aufs i-te Element und meist schnell beim Hinten-Anfügen, jedoch langsam beim Einfügen und Löschen von Elementen mittendrin.
 +    * Die Klasse Set garantiert nicht, dass die Anordnung der Elemente ("hintereinander") beibehalten wird, optimiert dafür aber die Geschwindigkeit der Methoden ''contains'' und ''containsAll'', die in konstanter Zeit ausgeführt werden. Diese Methoden haben bei der ''LinkedList'' und der ''ArrayList'' Ausführungszeiten O(n).
 </WRAP> </WRAP>
  
 +===== Die Utility-Klasse Collections =====
 +<WRAP center round tip 80%>
 +Die Klasse ''Collections'' stellt statische Methoden zum Sortieren und zum zufälligen Mischen der Elemente einer Collection zur Verfügung.
 +</WRAP>
 +
 +===== Klassen zum Speichern einer Relation (Maps) =====
 +{{ :anhang:collections:collection_framework_maps.svg |}}
 +<WRAP center round tip 80%>
 +Die Klasse ''HashMap'' ist daraufhin optimiert, in konstanter Zeit zu einem gegebenen Key-Objekt das entsprechende Value-Objekt zu finden.
 +</WRAP>
 +
 +
 +===== Aufgaben =====
 +<WRAP center round todo 80%>
 +Schreiben Sie für die folgenden Szenarien jeweils eine Klasse zur Datenspeicherung und zwei JUnit-Testfälle, die die korrekte Speicherung/Abfrage der Daten verifizieren.
 +  * 1. Die Klasse ''Schulklasse'' speichert die Bezeichnung und den Namen der Klassenleitung. Die Klasse ''Klassenverzeichnis'' soll Methoden zum Speichern von Schulklassen, zur Suche einer Klasse (bei gegebener Bezeichnung) und zur Ausgabe aller Klassen besitzen.
 +  * 2. Ein ''Telefonbucheintrag'' besteht aus Telefonnummer, Rufname, Familienname und Anschrift. Die Klasse ''Telefonbuch'' soll Methoden zum Speichern von Telefonbucheinträgen und zum Suchen aller Einträge zu einem Familiennamen besitzen.
 +  * 3. Ein Unternehmen veröffentlicht Gutscheincodes (Codebezeichner, Datum von, Datum bis, Prozentsatz), die die Kunden beim Checkout eingeben können um einen Nachlass zu erhalten. Jeder Code kann je Kunde nur ein Mal verwendet werden. 
 +</WRAP>
  
anhang/collections/start.1734290635.txt.gz · Zuletzt geändert: 2024/12/15 19:23 von Martin Pabst

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki