Datastructuren
1) Collections framework:
- Datastructuren die meerdere elementen tot 1 geheel groeperen. Bestaat uit
Interfaces en Implementaties
2) Doorlopen van collectie:
1: Aggregate functies
myShapesCollection.stream()
.filter(e -> e.getColor() == Color.RED)
.forEach(e -> System.out.println(e.getName()));
2: For-each
for (Object o : collection)
System.out.println(o);
3: Iterators
→ Iterator > for-each: verwijderen niet mogelijk in for-each
public interface Iterator<E> {
boolean hasNext();
E next();
void remove(); //optional
}
,3) Interface List:
- functies: get, set, add, remove, addAll, indexOf, lastIndexOf
- addAll → voegt elementen toe achteraan de lijst
Destructief:
list1.addAll(list2); //list1 wordt uitgebreid met list2,
oorspronkelijke list1 wordt vernietigd!
Non-destructief:
list<Type> list3 = new ArrayList<Type>(list1);
list3.addAll(list2);
- Implementaties:
1: ArrayList → List<String> list = new ArrayList<>();
2: LinkedList → List<String> list = new LinkedList<>();
4) Klasse Stack:
- LIFO → Pannenkoeken voorbeeld
- Stack<String> stack = new Stack<>();
- Extensie van klasse Vector: empty(), peek() → kijkt naar bovenste object maar
verwijdert niet, pop() → verwijdert top object, push(E item),
search(Object O)
5) Interface Queue:
- FIFO → Voorbeeld winkelrij
- Queue<Integer> queue = new LinkedList<Integer>();
- functies: offer(E e), peek(), poll(), remove()
6) Interface Set:
- functies: size(), isEmpty(), contains(O element), add(E element),
remove(O element), containsAll(), addAll, removeAll, retainAll, clear(), toArray()
- Geen dubbels!
- Erft methodes over van Collection
- SortedSet → elementen in stijgende volgorde
- Implementaties:
1: HashSet → Set<String> s = new HashSet<String>();
2: Treeset → SortedSet<String> sortedSet = new TreeSet<>();
, 7) interface Map:
- functies: put(K key, V value)
- keys → values
- Geen dubbels!
- Implementaties:
1: HashMap → Map<Integer, String> hashMap = new HashMap<>();
2: TreeMap → SortedMap<String, LinkedList<String>> treeMap
= new TreeMap<>();(Bv. naam groep → met alle leden in list)
3: LinkedHashMap → Map<String, Integer> linkedHashMap = new
LinkedHashMap<>();
1) Collections framework:
- Datastructuren die meerdere elementen tot 1 geheel groeperen. Bestaat uit
Interfaces en Implementaties
2) Doorlopen van collectie:
1: Aggregate functies
myShapesCollection.stream()
.filter(e -> e.getColor() == Color.RED)
.forEach(e -> System.out.println(e.getName()));
2: For-each
for (Object o : collection)
System.out.println(o);
3: Iterators
→ Iterator > for-each: verwijderen niet mogelijk in for-each
public interface Iterator<E> {
boolean hasNext();
E next();
void remove(); //optional
}
,3) Interface List:
- functies: get, set, add, remove, addAll, indexOf, lastIndexOf
- addAll → voegt elementen toe achteraan de lijst
Destructief:
list1.addAll(list2); //list1 wordt uitgebreid met list2,
oorspronkelijke list1 wordt vernietigd!
Non-destructief:
list<Type> list3 = new ArrayList<Type>(list1);
list3.addAll(list2);
- Implementaties:
1: ArrayList → List<String> list = new ArrayList<>();
2: LinkedList → List<String> list = new LinkedList<>();
4) Klasse Stack:
- LIFO → Pannenkoeken voorbeeld
- Stack<String> stack = new Stack<>();
- Extensie van klasse Vector: empty(), peek() → kijkt naar bovenste object maar
verwijdert niet, pop() → verwijdert top object, push(E item),
search(Object O)
5) Interface Queue:
- FIFO → Voorbeeld winkelrij
- Queue<Integer> queue = new LinkedList<Integer>();
- functies: offer(E e), peek(), poll(), remove()
6) Interface Set:
- functies: size(), isEmpty(), contains(O element), add(E element),
remove(O element), containsAll(), addAll, removeAll, retainAll, clear(), toArray()
- Geen dubbels!
- Erft methodes over van Collection
- SortedSet → elementen in stijgende volgorde
- Implementaties:
1: HashSet → Set<String> s = new HashSet<String>();
2: Treeset → SortedSet<String> sortedSet = new TreeSet<>();
, 7) interface Map:
- functies: put(K key, V value)
- keys → values
- Geen dubbels!
- Implementaties:
1: HashMap → Map<Integer, String> hashMap = new HashMap<>();
2: TreeMap → SortedMap<String, LinkedList<String>> treeMap
= new TreeMap<>();(Bv. naam groep → met alle leden in list)
3: LinkedHashMap → Map<String, Integer> linkedHashMap = new
LinkedHashMap<>();