Javakurs fss 2012 lehrstuhl stuckenschmidt
Download
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


    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