Collections Flashcards
Syntaxe vytvoreni String pole
prazdne
hodnotami (2)
String[] array = new String[2];
String[] array = new String[] {“a”, “b”};
String[] array = {“a”, “b”};
Prazdne pole ma po vytvoreni v komurkach co?
defaultni hodnoty
Syntaxe vytvoreni dvourozmerne matice Byte
prazdne
hodnotami
Byte[][] matrix = new Byte[2][3]; // radek, sloupec
Byte[][] matrix = {{1,2,3},{2,3}} // 2 radky, 3 sloupce, posledni hodnota je 0
Metody kopirovani z pole do pole (3)
System.arraycopy(source, sposition, destination, dposition, length)
var x = Arrays.copyOf(source, position)
var x = Arrays.copyOfRange(source, position, length)
Jak seradit prvky v poli
Jak seradit prvky v kolekci
Arrays.sort(array, comparator)
Collections.sort(collection, comparator)
Jak se kompilator chova k generics
Smaze je - nahradi za Object. Ale kde se pouzije hodnota, pretypuje se na spravny typ.
Wildcards:
neznamy typ
nadtyp (nebo stejny) - lowerbound wc.
podtyp (nebo stejny) - upperbound wc.
- syntax + ktery z nich definuje read only kolekci?
List<?>
List<? super X>
List<? extends X>
List<?>
List<Product> products = new ArrayList<Food>(); projde?</Food></Product>
ne, collections jsou invariantni - typ musi sedet
Product[] products = new Food[]; projde?
ano, arrays jsou covariantni - typ muze byt urcitejsi
Ifc kolekce pro oboustrannou frontu + impl (3)
Jaka je impl. velikost?
Deque<T> d = new ArrayDeque<>();
new ArrayDeque<>(list);
new ArrayDeque<>(20);
16</T>
Oboustranna fronta - metody:
insert dopredu/dozadu
get odpredu/odzadu
get&remove odpredu/odzadu
offerFirst, offerLast
peekFirst, peekLast
pollFirst, pollLast
Pristup oboustranne fronty k null
Null hodnoty nelze vkladat
Gettery vraci null, pokud je kolekce prazdna
Kolekce key,value ifc+impl (3)
Jaka je implicitni velikost?
Map<T> m = new HashMap<>();
new HashMap<>(100);
new HashMap<>(otherMap);</T>
Iterator na kolekci:
podminky, vytvoreni
jak zjistim, vratim, odstranim prvek?
implements Iterable
coll.iterator()
hasNext(), next(), remove()
Jaka je podminka kolekce, aby mohla lezt do foreach
implements Iterable
Seznam - ifc+impl (3)
Jaka je impl. velikost
List<T> l = new ArrayList<>();
new ArrayList<>(100);
new ArrayList<>(set);</T>
Metoda pro vytvoreni immutable seznamu, pokud mas prvky
List.of(a, b, c);
Metoda pro vytvoreni mutable seznamu, pokud mas prvky (mohou byt v poli)
Arrays.asList(a, b)
Arrays.asList(a[])
Seznam metody:
pridej a posun (2p), pridej a prepis prvek
odstran (2p)
obsahuje prvek
jakou ma prvek pozici
add(T), add(index, T), set(index, T)
remove(index), remove(T) - prvni nalezeny
contains(T)
indexOf(T) - pokud neni, vraci -1