MI-PSL-9 Flashcards
- What are the variants of collections and in what packages are they defined?
immutable - scala.collection.immutable
mutable - scala.collection.mutable
společné abstraktní kolence - scala.collection
- Draw the graph of inheritance of abstract collections.
obrazek
- What is the collection uniform syntax principle?
Jedná se o sjednocení přístupů k prvkům kolekcí přes jejich apply metodu. má-li objekt metodu apply, může se dané slovo při volání vynechat. To samé sjednocení platí pro instancování abstraktních předků, každá abstraktní kolekce má definovaného implicitního konkrétního předka.
- What is the collection uniform return type principle?
Všechny návratové hodnoty metod dané kolekce jsou nahrazeny konkrétním typem kolekce. (např. metoda map ve třídě Traversable vrací opět Traversable)
- What is the basic abstract operation defined within Traversable?
metoda foreach
- Write an representative of Traversable mapping operations.
funkce map - aplikuje funkci f na všechny prvky dané kolekce
- Write an representative of Traversable conversion operations.
Převede danou kolekci pomocí metod toXXX na jinou kolekci XXX. Např .toList
- Write an representative of Traversable size operations.
isEmpty, size
- Write an representative of Traversable retrieval operations.
head, find
- Write an representative of Traversable subcollection operations.
tail, take - veme prvních n prvků, drop - veme prvky (n, traversable.length), filter - vrátí podkolekci splňující podmínku p
- Write an representative of Traversable subdivision operations.
splitAt, vrací dvojici rozděleného listu
- Write an representative of Traversable condition operations.
forAll, exists
- Write an representative of Traversable fold operations.
foldLeft, reduceLeft, foldRight, reduceRight
- Write an representative of Traversable string operations.
mkString - vyrobí string z kolekce
- What is the basic abstract operation defined within Iterable?
abstract def iterator: Iterator[A]
Pomocí této metody jsou implementovány všechny ostatní metody, např.foreach:
def foreach(f: Elem => Unit) { val it = iterator while (it.hasNext) f(it.next()) }