Java Collections Framework

Podobne dokumenty
Programowanie w języku Java. Kolekcje

java.util.* :Kolekcje Tomasz Borzyszkowski

Realizacja ekstensji klasy. Paulina Strzelecka, Tomasz Roszkowski

Lista, Stos, Kolejka, Tablica Asocjacyjna

Kolekcja (kontener) to po prostu obiekt, który grupuje wiele elementów w jeden twór.

Kolekcje mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011

Kolekcje. Na podstawie:

Kurs programowania. Wykład 9. Wojciech Macyna

Kolekcje - pakiet Java Collections Framework

Kurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016

Programowanie obiektowe

Tworzenie aplikacji w języku Java

Kolekcje - pakiet Java Collections Framework

GUI - projektowanie interfejsów cz. II

Programowanie Obiektowe (Java)

Java niezbędnik programisty spotkanie nr 8. Kolekcje c.d.

Wydział Fizyki i Informatyki Stosowanej, Uniwersytetu Łódzkiego Łódź. Java podstawy języka, wykład 4 1

Struktury danych: stos, kolejka, lista, drzewo

Język JAVA podstawy. Wykład 4, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Wykład 4. Klasa List Kolejki Stosy Słowniki

Wykład 5 Wybrane zagadnienia programowania w C++ (c.d.)

Kolekcje. object that groups multiple elements into a single unit

Języki i metody programowania Java INF302W Wykład 3 (część 2)

Kiedy potrzebne. Struktura (rekord) Struktura w języku C# Tablice struktur. struktura, kolekcja

Kompletna dokumentacja kontenera C++ vector w -

Podstawy otwartych języków programowania Przechowywanie danych


Stos LIFO Last In First Out

Programowanie i projektowanie obiektowe

jlabel: void setalignment(label.center/left/right) - wyrównanie String gettext() pobiera aktualny tekst napisu void settext(string text) ustawia

Struktury danych (I): kolejka, stos itp.

Struktury Danych i Złożoność Obliczeniowa

Podstawowe struktury danych

Algorytmy i Struktury Danych. Co dziś? Drzewo decyzyjne. Wykład IV Sortowania cd. Elementarne struktury danych

Programowanie w Javie- wykład 11 Kolekcje (listy)

Programowanie aplikacji mobilnych

Algorytmy i struktury danych

Wykład 3 Składnia języka C# (cz. 2)

Programowanie w C++ Wykład 7. Katarzyna Grzelak. 23 kwietnia K.Grzelak (Wykład 7) Programowanie w C++ 1 / 40

Sortowanie. Bartman Jacek Algorytmy i struktury

ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2014/2015. Drzewa BST c.d., równoważenie drzew, kopce.

Java SE Laboratorium nr 7. Temat: Kolekcje

dr inż. Piotr Czapiewski Tworzenie aplikacji w języku Java Laboratorium 1

Stworzenie klasy nie jest równoznaczne z wykorzystaniem wielowątkowości. Uzyskuje się ją dopiero poprzez inicjalizację wątku.

API STREAM WYRAŻENIA LAMBDA

Kolekcje w Javie cz. 1

Podstawy programowania. Podstawy C# Tablice

Programowanie w C++ Wykład 6. Katarzyna Grzelak. 1 kwietnia K.Grzelak (Wykład 6) Programowanie w C++ 1 / 43

Zadanie polega na stworzeniu bazy danych w pamięci zapewniającej efektywny dostęp do danych baza osób.

Algorytmy i Struktury Danych.

Struktury Danych i Złożoność Obliczeniowa

Platformy Programistyczne Podstawy języka Java

INFORMATYKA W SZKOLE. Podyplomowe Studia Pedagogiczne. Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227

Comparable<Klasa_uzytkownika>

Struktura danych. Sposób uporządkowania informacji w komputerze. Na strukturach danych operują algorytmy. Przykładowe struktury danych:

Kolekcje obiektów. Wyj tki.

Język Java część 2 (przykładowa aplikacja)

Kolejka priorytetowa. Często rozważa się kolejki priorytetowe, w których poszukuje się elementu minimalnego zamiast maksymalnego.

SYSTEMY CZASU RZECZYWISTEGO - VxWorks

Algorytmy i. Wykład 3: Stosy, kolejki i listy. Dr inż. Paweł Kasprowski. FIFO First In First Out (kolejka) LIFO Last In First Out (stos)

Programowanie obiektowe

Programowanie i struktury danych

KOLEKCJE JAVY API: NAJPROSTSZE PODSTAWY

Sprawozdanie do 5. Projektu z Algorytmów i struktur danych 1

Spis treści. I. Pascal

Algorytmy i struktury danych. Wykład 4 Tablice nieporządkowane i uporządkowane

Informatyka I. Wykład 4. Tablice. Dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

2. Klasy cz. 2 - Konstruktor kopiujący. Pola tworzone statycznie i dynamicznie - Funkcje zaprzyjaźnione - Składowe statyczne

STL Standardt Template Library (wprowadzenie)

Laboratorium z przedmiotu Programowanie obiektowe - zestaw 04

Dawid Gierszewski Adam Hanasko

Twój wynik: 4 punktów na 6 możliwych do uzyskania (66,67 %).

2. Tablice. Tablice jednowymiarowe - wektory. Algorytmy i Struktury Danych

Zestaw 1 Organizacja plików: Oddajemy tylko źródła programów (pliki o rozszerzeniach.adb)!!!

WSTĘP DO INFORMATYKI. Struktury liniowe

Tabela wewnętrzna - definicja

Wykład 3. Złożoność i realizowalność algorytmów Elementarne struktury danych: stosy, kolejki, listy

Języki i metodyka programowania. Język C# pętle, sterowanie, wyjątki

Programowanie w języku Java 7 z biblioteką SWING

Jeszcze o algorytmach

Modelowanie obiektowe

Wstęp do programowania

Algorytmy przeszukiwania

Java: interfejsy i klasy wewnętrzne

Java. Michał Wójcik.

Programowanie obiektowe

Programowanie w Javie - wykład 13 Kolekcje c.d. ( mapy)

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych

1. Kalkulator czterech działań. 2. Konwersja ciągu znaków do tablicy.

Kontenery i iteratory. Wykorzystanie kontenerów w praktyce.

Algorytmy i Struktury Danych. Anna Paszyńska

Myśl w języku Python! : nauka programowania / Allen B. Downey. Gliwice, cop Spis treści

Podstawy programowania Pascal/Java/C# : skrypt do wykładu i laboratoriów / Jacek M. Czerniak, Łukasz Apiecionek, Grzegorz Zych.

Wprowadzenie do programowania

Java Podstawy. Michał Bereta

Sortowanie przez wstawianie Insertion Sort

SZKOLENIE. Programowanie w języku Java. tel.: ; fax: ,

Sortowanie bąbelkowe

Listy, krotki, słowniki, funkcje

Transkrypt:

Java Collections Framework

Co to jest Java Collections Framework JCF Zunifikowana architektura do reprezentacji i manipulacji kolekcjami danych. Składa się z: Interfejsów Definuje abstrakcyjne typy możliwych manipulacji na danych Implementacji implementacji różnych struktur danych Algorytmów algorytmów do operacji na da nych Żródło: http://docs.oracle.com/javase/tutorial/collections/intro/index.html

Interfejsy public interface Collection<E> Zbiór unikatowych wartości Kolejka typu FIFO, Gwarantuje kolejność elementów zgodną z kolejnością ich wkładania. Metody: remove i poll zawsze działają na głowie kolejki Słownik mapujący klucz na wartość Dynamiczna tablica danych Kolejka typu FIFO, lub LIFO, elementy wkładane do takiej kolejki mogą być układane na obydwu końcach (głowie i ogonie) Żródło: http://docs.oracle.com/javase/tutorial/collections/intro/index.html

public interface Collection<E> Rozmiar liczba elementów w kolekcji Czy kolekcja jest pusta Czy kolekcja zawiera element Dodanie elementu Usunięcie elementu Pobranie iteratora po elementach kolekcji np. petla ForEach Operacje wsadowe w celu przyspieszenia działania Operacje tablicowe

SET Podczas dodawania elementu automatycznie sprawdza czy dany element nie występuje już w zbiorze Dane wejściowe Jeśli elementu już był to add zwraca false (dodanie do zbioru nie udało się)

LIST Odczytanie elementu spod indeksu i Ustawienie elementu pod indeksem i Dodanie elementu w miejsce i (rozsuwa listę) Usunięcie i tego elementu Odczytanie indeksu danego elementu listy Pobranie iteratora. UWAGA: Lista ma rozszerzony iterator Zwraca listę będącą widokiem na oryginalną listę Iterator dwukierunkowy

List a algorytmy sort Sortowanie listy shuffle losowe układanie elementów listy reverse odwrócenie listy replaceall Zamiana wszystkich wystąpień jednej wartości na inną fill Zastąpienie wszystkich elementów list przez specjalną wartość copy kopiowanie list binarysearch Poszukiwanie określonego elementu na liście z wykorzystaniem algorytmu binarysearch uwaga lista musi być posortowana

Queue Pobiera ale i usuwa elementu z kolejki. Uwaga: Niektóre metody zwracają wyjątek (jak kolejka jest pusta, lub gdy przekroczono dozwolony rozmiar) Pobiera ale nie usuwa elementu z kolejki Dodaje element do klejki, zwraca true jeśli dopdanie zakończone powodzeniem Pobiera ale nie usuwa elementu z kolejki. Jeśli kolejka jest pusta zwraca null Pobiera ale i usuwa element z kolejki. Jeśli kolejka jest pusta zwraca null Zwraca wyjątek: IllegalStateException jeśli przekroczono dozwolony rozmiar kolejki

Deque Kolejka dwukierunkowa

Map Tablica asocjacyjna

Implementacje

Implementacje Set HashSet szybka implementacja, stała złożoność dla większości operacji TreeSet zwykle złożoność logarytmiczna, ale automatyczne sortowanie elementów

Implementacje List ArrayList bardzo szybka implementacja bazująca na tablicach, problem gdy dodajemy duzo elementów, brak narzutu na posiadanie opakowacza LinkedList Do użytku gdy dodawanych jest dużo elementów na początku listy, lub usuwanie elementów za pomocą iteratora

Implementacje Map HashMap bardzo szybka implementacja bazująca na ArrayList, dobra gdy nie zależy nam na kolejności elementów TreeMap wolna bo dokonuje autosortowanie, ale użyteczna gdy ważna jest kolejność kluczy (np. książka adresowa)

Implementacje Kolejek LinkedList prosta implementacja kolejki PriorityQueu umozliwia tworzenie kolejek priorytetowych bazuje na komparatorze

Komparator Dwie możliwości budowy komparatorów Wrzucamy do kolekcji elementy implementujące interfejs Comparable Tworzymy klasę komparatora Implementacja interfejsu Comparator Do kolekcji wrzucamy dowolne elementy

Komparator przykłady Wrzucamy do kolekcji elementy implementujące interfejs Comparable Tworzymy klasę komparatora Implementacja interfejsu Comparator Do kolekcji wrzucamy dowolne elementy

Kolejki priorytetowe Uwaga!!!?

Kolejki priorytetowe Uwaga!!! Kolejka priorytetowa nie gwarantuje poprawnego poprawnej kolejności w iteratorze. Poprawna kolejność jedynie przy odczytywaniu z głowy lub ogona!!!!!

Inne elementy kolekcji Klasa java.util.collections -> zbiór użytecznych metod statycznych do działania na kolekcjach Metoda binarysearch disjoint frequency min / max reverse shuffle sort Synchronized( ) np. List Unmodifiable( ) np. List opis Metoda szuka czy na liście znajduje się określony element i zwraca jego indeks (wymagane Comparator lub Comparable) Sprawdza czy dwie listy są rozłączne, tzn czy elementy na jednej liście nie występują na drugiej, zwraca boolean Liczy częstość występowania danego elementu na liście, zwraca częstość tego elementu Zwraca najmniejszy / największy element na liście wg. komparatora Odwraca porządek elementów na liście Układa elementy listy w sposób losowy Sortuje elementy listy wg. komparatora Tworzy wersję synchronizowana określonej kolekcji czyli ThreadSave Tworzy kolekcję niemodyfikowalną dużo szybsze w szczególności dla wielowątkowości brak konieczności synchronizacji brak sekcji krytycznej

Porównanie Żródło: http://zeroturnaround.com/ wp-content/uploads/2016/04/ Java-Collections-cheat-sheet.png