• Nie Znaleziono Wyników

2020-05-27TW PO, ćwiczenia

N/A
N/A
Protected

Academic year: 2021

Share "2020-05-27TW PO, ćwiczenia"

Copied!
17
0
0

Pełen tekst

(1)

PO, ćwiczenia

2020-05-27

TW

(2)

Drugie zadanie zaliczeniowe

Strona zadania: https://moodle.mimuw.edu.pl/mod/assign/view.php?id=16527 Termin: do 2020-06-06

Ciekawostka: dane dotyczące prawdziwych wyborów

https://sejmsenat2019.pkw.gov.pl/sejmsenat2019/pl/dane_w_arkuszach

(3)

Klasy anonimowe

https://docs.oracle.com/javase/tutorial/java/javaOO/anonymousclasses.html abstract public class AbstractHello {

abstract protected String message();

public void say(){System.out.println("Hello:"+message());}

}

AbstractHello h = new AbstractHello() {

protected String message() { return “World”; } };

h.say();

(4)

Iteratory

https://www.geeksforgeeks.org/java-implementing-iterator-and-iterable-interface/

class CustomDataStructure<T> implements Iterable<T> { public Iterator<> iterator() {

return new CustomIterator<>(this);

} } użycie:

for(Integer i : s) { ... }

for(Iterator<Integer> it = s.iterator(); it.hasNext();) { Integer curr=it.next(); … }

(5)

Iteratory - przykład

(6)

Zadanie - zbiór kolekcji

Chcemy utrzymywać zbiór różnych kolekcji nad wybranym typem.

Wymagane operacje:

- dodawanie / usuwanie kolekcji

- iteracja po wszystkich elementach kolekcji

(7)

Zadanie - zbiór kolekcji

Przykład użycia:

WYNIK:

(8)

Zadanie - zbiór kolekcji

Problemy:

● jak uniknąć duplikacji kodu i maksymalnie wykorzystać iteratory z kolekcji

● jak obsługiwać puste kolekcje?

(9)

Zadanie - zbiór kolekcji - iterator

(10)

Zadanie - Tablica z filtrowaniem

Potrzebujemy kolekcji z dodatkową metodą filter

(11)

Zadanie - Tablica z filtrowaniem - rozwiązanie

Zagadka: dlaczego InteliJ zaznaczyło pętlę for? Rozwiązanie za kilka slajdów.

(12)

Zadanie - Tablica z filtrowaniem - przykład użycia

Zagadka:

dlaczego potrzebna jest dodatkowa zmienna j?

(13)

Zadanie - Tablica z filtrowaniem - przykład użycia 2

(14)

Zadanie - Zwykła tablica - przykład użycia

(15)

Zadanie - Zwykła tablica - przykład użycia - prościej

Uwaga! tu przeciwny warunek

(16)

Rozwiązania

https://drive.google.com/file/d/1QWA_zEQPTB43ay_iZ0miEifJ25ZqqylP/view?usp

=sharing

- stos z iteracją - zbiór kolekcji - filtrowanie

(17)

Zadanie domowe

BSTImmutableSet

- zwyczajne drzewo BST

- jednak każda operacja add/remove zwraca reprezentację nowego zbioru - Immutable oznacza, że możemy cały czas odwoływać się do reprezentacji

starych wersji drzewa

- oczywiście chcemy zaimplementować add/remove jak najbardziej efektywnie (czyli bez kopiowania wszystkich elementów)

https://en.wikipedia.org/wiki/Persistent_data_structure

https://hackernoon.com/how-immutable-data-structures-e-g-immutable-js-are-opti mized-using-structural-sharing-e4424a866d56

Cytaty

Powiązane dokumenty

prowadzona będzie na terenie Publicznej Szkoły Podstawowej w Jasieniu zbiórka artykułów spożywczych, które przekazane zostaną do Caritas Parafii Wniebowzięcia NMP

Pingwinek musi poruszać się cały czas dlatego wszystko co związane z ruchem musi być w poleceniu

Zdaniem 38% studentów polskich i 34% studentów zagranicznych, 10% doktorantów i 5% pracowników w Bibliotece jest za mało sal pracy zbiorowej.. Dominujący głos

Podaj nazwę kategorii znaczeniowej rzeczowników pochodnych, do której należy rzeczownik czytelniczka i podkreśl jego formant, a następnie za pomocą tego samego formantu

Proszę obejrzeć poniższy materiał i jeśli coś się spodoba to wprowadzić kilka ćwiczeń do swojej gimnastyki codziennej.. Ćwiczenia ogólnorozwojowe z

Po obejrzeniu materiałów i mam nadzieję poćwiczeniu proszę o przesłanie informacji – materiał oglądnąłem/oglądnęłam – chłopcy na adres email: nowakr.zsstaszkowka@gmail.com

Wychodziło się na ścieżkę, na ulicę i widać było jak szpital powstaje, jak się to wszystko buduje. Tego się już nigdy

Ale muszę też powiedzieć, że było bardzo dużo rozczarowań, było bardzo dużo takich, co pomagali, ale też bardzo dużo rozczarowań.. Życie jest krótkie, ale każdy