javakurs fss 2012 lehrstuhl stuckenschmidt
Download
Skip this Video
Download Presentation
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt

Loading in 2 Seconds...

play fullscreen
1 / 35

Javakurs FSS 2012 Lehrstuhl Stuckenschmidt - PowerPoint PPT Presentation


  • 69 Views
  • Uploaded on

Javakurs FSS 2012 Lehrstuhl Stuckenschmidt. Tag 4 – ArrayList , PriorityQueue , HashSet und HashMap. Array List. Dynamisches Array ArrayList vertritt ein Array mit variabler Länge Kapazität passt sich automatisch an ArrayList wird selbstständig vergrößert. Array List.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Javakurs FSS 2012 Lehrstuhl Stuckenschmidt' - tessa


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
javakurs fss 2012 lehrstuhl stuckenschmidt

Javakurs FSS 2012 Lehrstuhl Stuckenschmidt

Tag 4 – ArrayList, PriorityQueue, HashSet und HashMap

array list
Array List
  • Dynamisches Array
      • ArrayList vertritt ein Array mit variabler Länge
      • Kapazität passt sich automatisch an
      • ArrayList wird selbstständig vergrößert
array list1
Array List
  • ArrayList<E>
      • Generische Datentypen
      • Ermöglicht es unterschiedliche Datentypen zu verwenden
      • Implementierung findet Typ unabhängig statt
array list2
Array List
  • ArrayList<E>
      • Generische Datentypen müssen Objekte sein
          • String, DeinObjekt...
      • Primitive Datentypen nicht verwendbar
          • int, boolean, char...

Box für Zahlen? Boolsche Werte??

wrapperklassen
Wrapperklassen
  • Objekte primitiver Datentypen
      • Wrapper-Objekte nehmen primitive Datentypen auf
      • Verfügen über zusätzliche Funktionen
wrapperklassen1
Wrapperklassen
  • Erzeugen von Wrapper-Objekten
      • Wrapper-Objekte sind final
      • Konstruktoren
      • Funktionen
      • Wert verändern
autoboxing
Autoboxing
  • Boxing und Unboxing
      • Primitive Datentypen <-> Wrapper-Objekte
      • Boxing: Erstellen eines Wrapper-Objektes
      • Unboxing: Beziehen des Wertes aus einem Wrapper-Objekt
autoboxing1
Autoboxing
  • Vorsicht
      • Probleme mit ==
      • Erwartet keine primitiven Datentypen
      • Daher kein Unboxing
      • Referenzvergleich – comparedTo, equals()
array list3
Array List
  • Erstellen einer ArrayList
      • Datentyp festlegen
      • Kapazität festlegen
      • Elemente einfügen
array list4
Array List
  • Kapazität und Länge
      • Kapazität
          • Felder die insgesamt zur Verfügung stehen
      • Länge
          • Felder die Belegt werden
      • Kapazität ≥ Länge
array list5
Array List
  • Kapazität
      • Viele Funktionen für die Kapazität
      • Kapazitätsmanagement beeinflusst Schnelligkeit
      • ArrayList wird um das 1,5 Fache vergrößert
array list6
Array List
  • Einfügen von 8 Elementen
array list7
Array List
  • Lösung: Einfügen von 8 Elementen
array list8
Array List
  • Lösung: Einfügen von 8 Elementen
array list9
Array List
  • Löschen von Elementen
hashing
Hashing
  • Hashverfahren
      • Algorithmus zum Suchen von Datenobjekten
      • Berechnung eines Hashwertes durch Hashfunktion
      • Hashwert fungiert als Index und „Fingerabdruck“
      • Jedes Objekt hat einen eigenen Hashwert

Key

Hashwert

Hash-

funktion

Tim

84088

hash map
HashMap
  • HashMap<K,V>
      • Speichert Key-Value Paare
      • Der Wert wird unter dem Schlüssel abgelegt
      • Schlüssel müssen eindeutig sein
        • z.B. String, Integer (id)

Key

Bucket

Value

Christian

Hash-

funktion

Thorsten

Tim

hash map1
HashMap
  • Erstellen einer HashMap
      • K-V Typen festlegen
      • Paare einfügen mit put(K,V)

Christian

Hash-

funktion

Thorsten

Tim

hash map2
HashMap
  • Kollision
      • Zwei unterschiedliche Schlüssel
      • Trotzdem selber Hashwert!
      • Kollisionsauflösung durch Verkettung

Key

Bucket

Value

Christian

Hash-

funktion

Thorsten

Tim

hash map3
HashMap
  • Offenes Potential
      • Eigene Objekte als Value!
      • Bsp: Aktienobjekte mit Informationen
          • Name, Kurs, Werte...
hash map4
HashMap
  • Objekte aufgepasst
      • Veränderungen wirken sich auf die HashMap aus
      • Dateninkonsistenz
hash map5
HashMap
  • Objekte aufgepasst
      • Bei Wrapperklassen unproblematisch
      • Neues Objekt anlegen!
          • Hier durch Autoboxing
hash map6
HashMap
  • Daten auslesen
      • Findet den Wert mit Hilfe des Schlüssels
      • Wert kann auch null sein
      • Niklas vorhanden ohne Konto?
          • Nicht vorhanden?
      • Konsolenausgabe
hash map7
HashMap
  • Daten auslesen
      • HashMap erlaubt null als Schlüssel oder Wert
      • Unklar ob Eintrag vorhanden oder nicht
      • Konsolenausgabe
hash map vs hash table
HashMapvsHash Table
  • Hash Table
      • Synchronized
      • Akzeptiert keine null Werte/Schlüssel
hash set
Hash Set
  • Menge (eng. Set)
      • Jedes Element darf nur einmal vorkommen
      • Keine Methode zum Auslesen
        • Erweiterte for Schleife
      • Konsolenausgabe
hash set1
Hash Set
  • Mengenoperatoren
      • Vereinigung mit addAll(Collection c)
      • Schnittmenge mit retainAll(Collection c)
      • Teilmenge mit containsAll(Collection c)
hash set2
Hash Set
  • Durchlaufen
      • Erweiterte for Schleife
      • Durchläuft Objekte vom Typ Iterable
      • Vorsicht HashSet ist nicht sortiert!
priority queue
Priority Queue
  • Warteschlange
      • Sortiert
      • Generische Warteschlange
priority queue1
Priority Queue
  • Vergleichen von Objekten
      • Comparable
          • „Natürliche Sortierung“
      • Comparator
          • Muss explizit angegeben werden
priority queue2
Priority Queue
  • Comparable
      • compareTo(T o) überschreiben
      • Objekt kann sich selbst mit anderen Objekten vergleichen
      • Umsetzung von nur einem Sortierkriterium
      • Muss in der selben Klasse sein
priority queue3
Priority Queue
  • Comparator
      • compare(T o1, T o2) überschreiben
      • Objekt können verglichen werden
      • Mehrer Sortierkriterien möglich durch Extraklassen
      • Muss nicht in der selben Klasse sein!
priority queue4
Priority Queue
  • Auf Elemente zugreifen
      • peek()
          • Holt das oberste Element ohne es zu löschen
      • poll()
          • Holt das oberste Element und löscht es
ad