PGO Kolekcje Michail Mokkas.

Slides:



Advertisements
Podobne prezentacje
Techniki i języki programowania
Advertisements

BJUG_1: Typy Generyczne, Kolekcje
Implementacja asocjacji (z atrybutami i bez) przy użyciu: referencji (kolekcji referencji) tablic asocjacyjnych przygotował: Kamil Kowalczyk.
1 TREŚĆ UMOWY O PRACĘ : Umowa o pracę określa strony umowy, rodzaj umowy, datę jej zawarcia oraz warunki pracy i płacy, w szczególności: 1) rodzaj pracy,
Tworzenie odwołania zewnętrznego (łącza) do zakresu komórek w innym skoroszycie Możliwości efektywnego stosowania odwołań zewnętrznych Odwołania zewnętrzne.
PRACA Z APLIKACJAMI SYSTEM PRZEMIESZCZANIA oraz NADZORU WYROBÓW AKCYZOWYCH EMCS PL 1.
Wyszukiwanie informacji w Internecie. Czym jest wyszukiwarka? INTERNET ZASOBY ZAINDEKSOWANE PRZEZ WYSZUKIWARKI Wyszukiwarka to mechanizm, który za pomocą.
Mam prawo do ochrony swoich danych osobowych Twoje dane – Twoja sprawa. Skuteczna ochrona danych osobowych. Inicjatywa edukacyjna skierowana do nauczycieli.
Literary Reference Center Przewodnik
Wprowadzenie do języka Java Kolekcje w języku Java Bartosz Walter.
Porównywarki cen leków w Polsce i na świecie. Porównywarki w Polsce.
Opodatkowanie spółek Podziały Spółek. Podziały spółek Rodzaje podziałów wg KSH Przewidziane są cztery sposoby podziału: 1) podział przez przejęcie, który.
BADANIA STATYSTYCZNE. WARUNKI BADANIA STATYSTYCZNEGO musi dotyczyć zbiorowościstatystycznej musi określać prawidłowościcharakteryzujące całą zbiorowość.
Teoria masowej obsługi Michał Suchanek Katedra Ekonomiki i Funkcjonowania Przedsiębiorstw Transportowych.
Python. Języki Programistyczne Microcode Machine code Assembly Language (symboliczna reprezentacja machine code) Low-level Programming Language (FORTRAN,
Pole wycinka kołowego r r α Wycinek kołowy, to część koła ograniczona dwoma promieniami. Skoro wycinek kołowy jest częścią koła, to jego pole jest częścią.
Usługa PUE-ZUS (Platforma Usług Elektronicznych Zakładu Ubezpieczeń Społecznych) Michał Dobrzyński, Departament Informatyki MRPiPS
Definiowanie i planowanie zadań typu P 1.  Planowanie zadań typu P  Zadania typu P to zadania unikalne służące zwykle dokonaniu jednorazowej, konkretnej.
5 KROKÓW DO SZKOŁY PONADGIMNAZJALNEJ Jak dostać się do szkoły ponadgimnazjalnej? Instrukcja dla uczniów, którzy uczą się w gimnazjach które przekazują.
Obliczanie procentu danej wielkości Radosław Hołówko.
Jak tworzymy katalog alfabetyczny? Oprac.Regina Lewańska.
PORADNIK WPROWADZANIA AKCJI. OGÓLNIE: Akcja musi zostać utworzona i opublikowana co najmniej tydzień przed jej rozpoczęciem. W opisie muszą znajdować.
Międzynarodowe opodatkowanie emerytur – ujęcie modelowe
Język Java Paweł Rajba
Dziedziczenie, polimorfizm, Interfejsy
DECYZJA O WARUNKACH ZABUDOWY tzw. „Wuzetka”
PODSTAWY TEORII BAZ DANYCH
Test analizy wariancji dla wielu średnich – klasyfikacja pojedyncza
Ucz i ucz się z TIK!.
Zasady transmisji w sieciach TCP/IP
Schematy blokowe.
DEFINICJA I ZASTOSOWANIE W JĘZYKU HASKELL
On-the-Fly Garbage Collection
Full Text Finder Przegląd Publication Finder
Akademia C# - Lab2 Zmienne, instrukcje warunkowe, pętle, debugger,
Programowanie obiektowe 2
Programowanie obiektowe II
Rekursje Tak jak w innych językach funkcje mogą odwoływać się same do siebie Możemy regulować głębokość przed stwierdzeniem błędu (MaxRecursion, $RecursionLimit,
ALGORYTMY I STRUKTURY DANYCH
Akademia C# lab. 9 Zdarzenia i delegaty.
Programowanie obiektowe Wykład 10
Programowanie obiektowe
Opracowała: Monika Grudzińska - Czerniecka
Przewodnik Udoskonalanie listy wyników w wyszukiwarce naukowej
Wstęp do Informatyki - Wykład 8
Kurs języka C++ – wykład 13 ( )
PODZIAŁ LOGICZNY KLASYFIKACJE TYPOLOGIE
PROGRAMY DO KONTROLI RODZICIELSKIEJ
Git - system kontroli wersji
SMB – Pierwszy projekt Michail Mokkas.
Koszyk danych.
Podstawy informatyki Zygfryd Głowacz.
Pobranie logo programu Microsoft Partner Network Instrukcja
ALGORYTMY I STRUKTURY DANYCH
C++ wykład 12 ( ) Kolekcje standardowe.
ALGORYTMY I STRUKTURY DANYCH
Przedstawicielstwo pełnomocnictwo.
SKJ Serwer WWW Michail Mokkas.
CATERING SZPITALNY KONTROLA INSPEKCJI HANDLOWEJ
To naprawdę bardzo proste!
ETO w Inżynierii Chemicznej
Implementacja rekurencji w języku Haskell
Znajdowanie liczb pierwszych w zbiorze
Bufory.
Język C++ Operatory Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi i Pawła.
PGO GUI - Swing Michail Mokkas.
PGO Porównywanie obiektów
Autor: Magdalena Linowiecka
To naprawdę bardzo proste!
Zapis prezentacji:

PGO Kolekcje Michail Mokkas

Spis treści Generic Tablica Collection Kontenery TreeSet ArrayList PriorityQueue HashMap Działania na kolekcjach Zadania

Generic Mechanizm w Javie, pozwalający metodom na działanie na różnych typach danych/obiektów. Notacja Generics: parametry typu T - wskazuje na typ E - wskazuje na element (np. List<E>) K - wkazuje na klucz V - wskazuje na wartość (np. Map<K,V>) wildcard ? - użycie jakiegokolwiek typu stosowane, kiedy nie wiemy z jakim typem mamy do czynienia

Tablica (Array) Kontener, który przechowywuje statycznie zadeklarowaną ilość wartości jednego typu. Tablica otrzymuje swój rozmiar przy deklaracji. Rozmiar nie może być zmieniony po jej utworzeniu. Indeks tablicy wskazuje na pozycję w kolejności elementów przetrzymywanych przez nią. Zaczyna się od 0.

Tablica kont. 1 Alternatywny sposób deklaracji: Wielowymiarowa tablica: Alternatywny sposób deklaracji wielowymiarowej tablicy:

Collection Najwyższy w hierarchii interfejs, po którym dziedziczą (rozszerzają lub implementują) inne klasy związane z przetrzymywaniem danych jak m.in.: Set (zbiór) SortedSet (zbiór uporządkowany) List (lista) ArrayList (lista na podstawie tablicy dynamicznej) LinkedList (lista na podstawie łączeń pomiędzy elementami) Vector (to samo co ArrayList + thread-safe) Queue (kolejka)

Collection Dysponuje metodami: boolean Add(E e) - dodaje element do kolekcji. boolean addAll(Collection<? extends E> c) - dodaje kolekcje do kolekcji. void clear() - usuwa wszystkie elementy. boolean contains(Object o) - sprawdza czy dany obiekt istnieje już w kolekcji. boolean equals(Object o) - porównuje dwie kolekcje. boolean isEmpty() - sprawdza czy kolekcja jest pusta. boolean remove(Object o) - usuwa jeden z obiektów podanych jako parametr. boolean removeAll(Collection<?> c) - usuwa obiekty znajdujące się w kolekcji c z naszej kolekcji. int size() - zwraca ilość elementów. Object[] toArray() - zwraca tablice elementów kolekcji. <T> T[] toArray(T[] a) - to samo co wyżej + ustalamy typ tablicy.

Kontenery źródło: http://www.programcreek.com/wp-content/uploads/2009/02/java-collection.jpg

TreeSet Implementacja interfejsu Set na podstawie TreeMap. Gwarantuje koszt czasowy log(n) dla operacji (add, remove i contains). Gwaratuje, że elementy zbioru będą uporządkowane (pod warunkiem, że implementują interfejs Comparable jak np. Integer i String) Nie dopuszcza duplikatów elementów. Nie jest thread-safe. Przykład: Rezultat w konsoli: [1, 2, 3, 4, 5]

ArrayList Implementuje interfejs List. W praktyce ArrayList stosuje się, jako alternatywa do zwykłych tablic, które są statyczne. Elementy ArrayList są indeksowane. Rozmiar ArrayList jest możliwy do zmiany po jej deklaracji. Przykład: Rezultat w konsoli: [A, B, D, C] A

PriorityQueue Kolejka priorytetowa na bazie stosu. Element z wyższym priorytetem obsługiwany jest wcześniej niż z niższym, a jeżeli mają taki sam to według swojej kolejności w kolejce. Nie dopuszcza elementów o wartości null. Dysponuje dodatkowo metodami: boolean offer(E e) - dodaje element do kolejki. E peek() - wyszukuje i nie usuwa głowy (element kolejny) kolejki. E poll() - wyszukuje i usuwa głowę (element kolejny) kolejki. Przykład: Rezultat w konsoli:

HashMap Implementacja tablicy mieszającej, bazująca na tablicy asocjacyjnej (mapy). Przechowuje pary (unikatowy klucz, wartość). Dostęp do jej elementów jest możliwy poprzez podanie klucza. Dopuszcza klucze i wartości null. Dodatkowo wykorzystuje metody: boolean containsKey(Object key) - sprawdza czy zawiera wartość przypisaną do klucza k boolean containsValue(object value) - sprawdza czy zawiera klucz do podanej wartości v V get(Object key) - zwraca wartość przypisaną do klucza k V put(K key, V value) - dodaje parę klucz-wartość do mapy

HashMap kont. 1 Przykład: Rezultat w konsoli: {1=C, 2=A, 3=B} {1=C, 2=A, 3=D, 4=A}

Działania na kolekcjach Synchronizacja kolekcji (thread-safe): Collections.synchronizedList() Collections.synchronizedMap() Collections.synchronizedSet() Collections.synchronizedCollection() Przykład: Pętla for each:

Zadanie 1 Stwórz tablicę przetrzymującą zdefiniowane już daty urodzin (skorzystaj z klasy Calendar lub GregorianCalendar). Następnie za pomocą pętli for each przerób tablicę na ArrayList tak, aby było możliwe dodawanie kolejnych dat urodzin do stworzonej już listy.

Zadanie 2 Zaprojektuj klasy reprezentujące numer seryjny (SerialNumber) oraz urządzenie (Device). Klasa SerialNumber powinna dysponować zmienną numer a klasa Device zmienną nazwa. Na podstawie tych klas stwórz HashMap przetrzymujący pary (SerialNumber, Device).

Zadanie 3 Stwórz kontener przetrzymujący obiekty różnego typu (co najmniej dwa). Dorób metody poprawnie klasyfikujące zwracane/otrzymywane obiekty z kontenera. skorzystaj ze stałej class klas obiektów oraz metody getClass() np. obj.getClass().equals(Integer.class) - zwraca true, jeżeli obj jest typu Integer

Zadanie 4 Stwórz klasę MyArrayList rozszerzającą klasę ArrayList. Obiekty klasy MyArrayList powinny wyświetlać w konsoli zawartość listy w następujący sposób (System.out.ptintln(mal)) : To jest lista o ID: 1234 w skład której wchodzą następujące elementy: A B C Lista posiada 3 elementy.