Javakurs fss 2012 lehrstuhl stuckenschmidt
This presentation is the property of its rightful owner.
Sponsored Links
1 / 35

Javakurs FSS 2012 Lehrstuhl Stuckenschmidt PowerPoint PPT Presentation


  • 47 Views
  • Uploaded on
  • Presentation posted in: General

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.

Download Presentation

Javakurs FSS 2012 Lehrstuhl Stuckenschmidt

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


    Array vs arraylist

    Array vs. ArrayList


    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


    Javakurs fss 2012 lehrstuhl stuckenschmidt

    Fragen?


  • Login