SOTE1­2015­06­22.notebook June 22, 2015 Java Collection Framework (java.util.*) Map Collections HashMap Hashtable Duplikate Set HashSet List Reienfolge ArrayList, Queue LinkedBlockingQueue SortedMap TreeMap LinkedList SortedSet TreeSet Inteface Implementierung Jun 22­14:02 1 SOTE1­2015­06­22.notebook June 22, 2015 API des Java Collection Frameworks Collection List (zusätzlich zu Collection) ­ add(Object o): void ­ add(int index, Object o) ­ contains(Object o): boolean ­ get(int index): Object ­ remove(Object o): void ­ remove(int index) ­ size(): int Map ­ put(Object key, Object value):void ­ remove(Object key): void ­ get(Object key): Object ­ keySet():Set ­ values():Collection ­ containsKey(Object key):boolean ­ containsValue(Object value):boolean Jun 22­13:43 2 SOTE1­2015­06­22.notebook June 22, 2015 Grafen Unterschied Baum: viele Vorgänger und viele Nachfolger und damit Loops möglich Anwendungsfälle Routenplanung ­ Kürzester Weg durch alle Knoten ­ Kürzester Weg von A nach B Flüsse (Abwasser, Strom, Waren) ­ Größter Durchsatz ­ Wie viele Fahrzeuge pro Zeiteinheit Projektmanagement (Aufgaben, Aufwände) ­ kürzeste Zeit gerichteter und gewichter Graf ­ kritischer Pfad Internet (Webseiten) ­ verlinkte Webseite => Google Page Rank Jun 22­14:32 3 SOTE1­2015­06­22.notebook June 22, 2015 Umsetzung von Grafen in Java a) Array => Adjazenzmatrix Transitive Hülle 1 1 2 2 3 4 5 2 4 1 9 9 4 5 3 4 Adjazenzmatrix 8 3 5 Jun 22­14:40 4 SOTE1­2015­06­22.notebook June 22, 2015 b) mit linearen Listen 4 Jun 22­14:47 5 SOTE1­2015­06­22.notebook June 22, 2015 Google Page Rank SEO Search Engine Optimization hängt ab vom PageRank und dem Suchbegriff ­ Off­Page­Optimierung > viele eingehende (relevante) Links ­ On­Page­Optimierung > Begriff im Seitentext > Überschriften > Text > Bildunterschriften > Metatags, Metabeschreibung > Title > Geschwindigkeit > Alter der Domäne > "Mobile Friendliness" > ... Jun 22­14:49 6 SOTE1­2015­06­22.notebook June 22, 2015 Page Rank A = 4/5*(1/3*D) + 1/5 B = 4/5*(1/2*A + E) + 1/5 C = 4/5*(1/3*B + 1/3*D) + 1/5 D = 4/5*(1/2*A + 1/3*B + C) + 1/5 E = 4/5*(1/3*B) + 1/5 F = 4/5*(1/3*D) + 1/5 4/5 ist der sog. Dämpfungsfaktor, der berücksichtigt, dass nur ein Teil der Zugriffe über Links (hier 4/5) und der andere Teil direkt erfolgt (hier 1/5). 1. Iterationsschritt: 1 einsetzen 2. Iterationsschritt: Ergebnisse aus 1. einsetzen A = 4/5*(1/3*1) + 1/5 = 7/15 A = 4/5*(1/3*TODO) + 1/5 = B = 4/5*(1/2*7/15 + TODO) + 1/5 = B = 4/5*(1/2*1 + 1) + 1/5 = 14/10 C = 4/5*(1/3*1 + 1/3*1) + 1/5 = ... D = 4/5*(1/2*1 + 1/3*1 + 1) + 1/5 = ... E = 4/5*(1/3*1) + 1/5 = ... C = 4/5*(1/3*14/10 + 1/3*TODO) + 1/5 = ... D = 4/5*(1/2*7/15 + 1/3*14/10 + TODO) + 1/5 = ... E = 4/5*(1/3*14/10) + 1/5 = ... F = 4/5*(1/3*TODO) + 1/5 = ... F = 4/5*(1/3*1) + 1/5 = ... Jun 22­14:55 7