name: portada class: portada-slide, center, middle # Estrutures de dades .footnote[Joan Puigcerver Ibáñez] --- layout: true class: regular-slide .right[.logo[]] --- # Lista - Col·lecció ordenada d'elements. - get(posicio) - add(posicio, element) ``` List
list = new ArrayList<>(); list.add(1); int value = list.get(0); ``` --- # Collection - Representa un conjunt d'objectes - Una llista és una Collection ``` Collection
values = Arrays.asList(3,4,5,67,3,1,32,32); for(int value: values){ System.out.println(value); } // incorrecte: values.get(0); --- # Map - Mapeja claus amb valors. - No pot tenir claus repetides ``` Map
map = new HashMap<>(); list.put("Mar", 2); list.put("Ot", 6); int value = map.get("Ot"); Collection
values = map.values(); Set
keys = map.keySet(); ``` --- # Set - Col·lecció que no conté duplicats ``` Set
set = new HashSet<>(); set.add(1) boolean value = set.contains(1); ``` --- # Queue - FIFO - Fifo: First In Firt Out - Add - Peek / Poll ``` Queue
queue = new LinkedList<>(); queue.add(student1); queue.add(student2); Student student = queue.peek(); // obté el primer (sense eliminar) Student student = queue.poll(); // obté i eliminar el primer ``` --- # Queue - Prioritat ``` Queue
queue = new PriorityQueue<>(); queue.add(student1); queue.add(student2); Student student = queue.peek(); // obté el primer (sense eliminar) Student student = queue.poll(); // obté i eliminar el primer ``` Usa Comparable per l'ordenació. Podem especificar un ordre especial: ``` Queue
queue = new PriorityQueue<>((s1, s2) -> s1.getAge()-s2.getAge()); ``` --- # Altres - Graph --- # Iterator ``` List
values = Arrays.asList(3,4,5,67,3,1,32,32); Iterator
iterator = values.iterator(); while(iterator.hasNext()){ Integer value = iterator.next(); iterator.remove();; } ``` --- # List - ArrayList  --- # List - LinkedList  --- # HashMap  --- # TreeMap  --- Equals & Hashcode Iterator