Studiewijzer module 03
Generics and Collections


Generics

Simpel voorbeeldje voor de ? extends …​ en de ? super …​:

List<? extends Number> foo3 = new ArrayList< Number >();  // Number "extends" Number (in this context)
List<? extends Number> foo3 = new ArrayList< Integer >(); // Integer extends Number
List<? extends Number> foo3 = new ArrayList< Double >();  // Double extends Number
List<? super Integer> foo3 = new ArrayList< Integer >();  // Integer is a "superclass" of Integer (in this context)
List<? super Integer> foo3 = new ArrayList< Number >();   // Number is a superclass of Integer
List<? super Integer> foo3 = new ArrayList< Object >();   // Object is a superclass of Integer

Collections

  • Een peek() op een stream is niet terminating, dus zonder een terminating methode zoals collect() doet de peek() niets.

  • Classes als IntStream geven bij methodes als min() of max() een OptionalInt terug. Omdat deze bij een lege lijst geen waarde opleveren geven ze dus een OptionalInt terug.

ArrayDeque

  • add(e) voegt toe aan het einde

  • offer(e) voegt toe aan het einde

  • push(e) voegt toe aan het begin

  • remove() verwijdert en get aan het begin

  • poll() verwijdert en get aan het begin

  • pop() verwijdert en get aan het begin

  • element() get aan het begin, laat element in collection

  • peek() get aan het begin, laat element in collection

Map

De merge(key,value,BiFunction<V,V,V>) methode in een map werkt als volgt:

  • Bestaat de key niet, dan wordt value gezet voor die key

  • Bestaat de key wel, dan gaat de oude value en de nieuwe value in de BiFunction en het resultaat wordt gezet voor de key


« Vorige module Volgende module »