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

Podobne dokumenty
Kolekcje. Na podstawie:

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

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

Programowanie w języku Java. Kolekcje

Realizacja ekstensji klasy. Paulina Strzelecka, Tomasz Roszkowski

Programowanie Obiektowe (Java)

Kolekcje - pakiet Java Collections Framework

Programowanie obiektowe

KOLEKCJE JAVY API: NAJPROSTSZE PODSTAWY

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

Programowanie i projektowanie obiektowe

Kolekcje - pakiet Java Collections Framework

Java Collections Framework

Kolekcje w języku Java

java.util.* :Kolekcje Tomasz Borzyszkowski

GUI - projektowanie interfejsów cz. II

Java SE Laboratorium nr 7. Temat: Kolekcje

Tworzenie aplikacji w języku Java

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

Podstawy otwartych języków programowania Przechowywanie danych

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

Kurs programowania. Wykład 9. Wojciech Macyna

Kolekcje obiektów. Wyj tki.

Dawid Gierszewski Adam Hanasko

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

Programowanie aplikacji mobilnych

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

Kolekcje. object that groups multiple elements into a single unit

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

Kompletna dokumentacja kontenera C++ vector w -

Lista, Stos, Kolejka, Tablica Asocjacyjna

Struktury Danych i Złożoność Obliczeniowa

Kolekcje w Javie cz. 1

Programowanie obiektowe i język Java

Języki i Techniki Programowania II. Wykład 4. Kolekcje

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

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

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

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

Java klasy kolekcji dr inż. Paweł Skrzyński, Java - kolekcje, 2010/2011

Comparable<Klasa_uzytkownika>

Programowanie Komponentowe Zarządzanie obiektami: kontenery

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

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

WYJĄTKI, KOLEKCJE ZAGADNIENIA: 1. Wyjątki, 2. Kolekcje, vector, hashtable, properties, Klasy Arrays i Collections.

Laboratorium z przedmiotu Programowanie obiektowe - zestaw 04

Kontenery i iteratory. Wykorzystanie kontenerów w praktyce.

Programowanie i struktury danych

Zaawansowane programowanie w języku C++ Biblioteka standardowa

STL Standardt Template Library (wprowadzenie)

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

Algorytmy sortujące i wyszukujące


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

import java.util.*; public class ListExample { public static void main(string args[]) { List<String> lista1= new ArrayList<String> ();

Wstęp do programowania

MAS dr. Inż. Mariusz Trzaska. Wykład 3. Wybrane konstrukcje obiektowych języków programowania (2)

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

Aplikacje w Javie wykład 7 Kolekcje (listy, zbiory)

STL: Lekcja 1&2. Filozofia STL

Programowanie sieciowe

Języki i metody programowania Java Lab4 podejście obiektowe, zastosowanie pojemników

Java. Michał Wójcik.

Wprowadzenie. Organizacja pracy i środowisko programistyczne. Mirosław Ochodek

Wstęp do Programowania potok funkcyjny

WSTĘP DO INFORMATYKI. Struktury liniowe

API STREAM WYRAŻENIA LAMBDA

Ćwiczenie 3 z Podstaw programowania. Język C++, programy pisane w nieobiektowym stylu programowania. Zofia Kruczkiewicz

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

Algorytmy i Struktury Danych. Anna Paszyńska

Struktury danych (I): kolejka, stos itp.

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

Programowanie w języku Java 7 z biblioteką SWING

Algorytmy i struktury danych

Java Zadanie 1. Aby poprawnie uruchomić aplikację desktopową, należy zaimplementować główną metodę zapewniającą punkt wejścia do programu.

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

Języki i techniki programowania Ćwiczenia 2

Instrukcja 2 Laboratorium z Podstaw Inżynierii Oprogramowania

Dla każdej operacji łącznie tworzenia danych i zapisu ich do pliku przeprowadzić pomiar czasu wykonania polecenia. Wyniki przedstawić w tabelce.

Wykład 4. Tablice. Pliki

Aplikacje Internetowe

Tabela wewnętrzna - definicja

Java: interfejsy i klasy wewnętrzne

TYPY GENERYCZNE (GENERICS)

Zaawansowane programowanie w C++ (PCP)

Sortowanie. Bartman Jacek Algorytmy i struktury

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)

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

Java: kilka brakujących szczegółów i uniwersalna nadklasa Object

Język C++ wykład VIII

Programowanie Obiektowe Java

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

Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie.

Podstawowe algorytmy i ich implementacje w C. Wykład 9

Tytuł szkolenia: Tworzenie wydajnego oprogramowania w języku Java - techniki zaawansowane

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

Programowanie obiektowe

Algorytmy i Struktury Danych.

Podstawy programowania. Podstawy C# Tablice

Narzędzia 2. dr inż. Tadeusz Jeleniewski

Transkrypt:

Kolekcje

Kolekcje w Javie Kolekcja (kontener) to po prostu obiekt, który grupuje wiele elementów w jeden twór. Pozwala na zapis, odczyt, korzystanie z danych oraz ich wzajemną komunikację. Przykład: ręka pokerowa (kolekcja kart), skrzynka odbiorcza (kolekcja maili), książka telefoniczna (słownik nazwisko-numer)

Po co? Mniejszy koszt Jak jest potrzebna lista/stos/kolejka, to po co ją programować od zera? Lepiej skoncentrować się na ważnych elementach! Zwiększa jakość i szybkość działania Stworzona kolekcja jest zoptymalizowana. Więcej: istnieją różne implementacje tej samej kolekcji (np. dla listy: ArrayList oraz LinkedLista) zoptymalizowane pod konkretne zastosowania. Łatwiejsze wzajemne oddziaływanie Kolekcje mają zdefiniowane standardowe podejścia. Łatwiej się nauczyć jednego API Większość z modyfikatorów jest zgodna pomiędzy różnymi rodzajami kolekcji. Przejście z jednego rodzaju na drugi jest bezbolesne. Łatwiej zaprojektować API Po co wynajdować koło od nowa skoro można użyć standardowych rozwiązań? Łatwiej o re-use kodu Kolekcje z natury są łatwe do ponownego wykorzystania

java.util.collection

Operacje wspólne Operacje podstawowe wykonywane na obiektach boolean add(object obj) boolean remove(object obj) boolean contains(object obj) Operacje grupowe wykonywane na kolekcjach obiektów boolean addall(collection coll) boolean removeall(collection coll) boolean containsall(collection coll) boolean retainall(collection coll) void clear()

Operacje wspólne Inspekcja int size() boolean isempty(object obj) Iteracja Iterator iterator() Operacje na tablicach konwersja do tablic Object[] toarray() Object[] toarray(object[] type)

Lista Duplikaty możliwe Dostęp sekwencyjny Przykłady: ArrayList, LinkedList, Vector, Stack Ala ma kota i czipsy 0 1 2 3 4

Lista Dostęp pozycyjny do elementów Ala ma kota i czipsy 0 1 2 3 4 Wyszukiwanie Widok przedziałowy Object get(int indeks) Object set(int indeks) Object add(int indeks) Object remove(int indeks) int indexof(object obiekt) int lastindexof(object obiekt) List sublist(int poczatek, int koniec)

Queue Taka zwykła kolejka (LIFO, FIFO, priorytetowa) Dodawanie elementu Usuwanie elementu Inspekcja boolean offer(object obiekt) Object remove() Object poll() Object element() Object peek()

Queue - przykład

Set Reprezentacja zbioru matematycznego Brak uporządkowania elementów Dostęp sekwencyjny niezalecany Brak duplikatów Ala psy ma brzydkie kota trzy oraz

Map Jednoznaczne odwzorowanie jak w słowniku Klucze, wartości i pary klucz-wartość dostępne jako obiekty Collection Ala Ola Kasia Kunegunda Kot Pies Jeżozwierz

Map Operacje podstawowe Object put(object klucz, Object wartosc) Object get(object klucz) Object remove(object klucz) boolean containskey(object klucz) boolean containsvalue(object wartosc) Operacje grupowe void putall(map zrodlo) widoki-kolekcje Set keyset() Collection values() Set entryset()

Map - przykłady

Iteratory Swoiste wskaźniki Służą do sekwencyjnego przeglądania wszystkich obiektów w kolekcji

Algorytmy Metody statyczne klasy Collections implementują typowe algorytmy wykonywane na kolekcjach: wyszukiwanie binarne sortowanie operacje algebraiczne na zbiorach odwracanie list permutacje list wyszukiwanie elementów max/min

Sortowanie - porównanie Aby móc sortować, trzeba wiedzieć który obiekt jest wcześniej, a który później. Matematyk by powiedział o relacji częściowego porządku. Intuicyjnie wiemy, że 3 > 2 Ale kto jest większy Ala czy Ola? Java Collections korzysta z dwóch interfejsów służących do porównywania obiektów java.lang.comparable java.util.comparator

Interfejs Comparable compareto(object obj) zwraca: mniej niż 0 gdy jej parametr jest większy niż własny obiekt 0 gdy jej parametr jest równy własnemu obiektowi więcej niż 0 gdy jej parametr jest mniejszy niż własny obiekt

Typy generyczne

Porównanie implementacji Kolekcje Implementacje ogólnego przeznaczenia Tablice hashujące Tablice dynamicz ne Struktury drzewiaste Set HashSet TreeSet Listy List ArrayList LinkedList Queue Deque ArrayDeq ue Map HashMap TreeMap LinkedList Tablica hashująca + lista LinkedHas hset LinkedHas hmap

Ćwiczenia 1. Korzystając z kolekcji, wykonaj analizator częstości występowania znaków w pliku. Zadbaj o graficzną formę (główna forma z okienkiem, w którym wczytuje się zawartość tekstu, druga forma z analizą częstości, przyciski otwórz, zamknij, itp.) 2. Napisz prostą i szybką książkę adresową. Elementami będą obiekty klasy Person. Zaimplementuj interfejs sortujący. 3. Sprawdź eksperymentalnie co jest szybsze: ArrayLista czy LinkedList dla następujących operacji: 1. Wstawianie elementu na początek 2. Wstawianie elementu do środka 3. Wstawianie elementu na koniec 4. Usunięcie z początku 5. Usunięcie ze środka 6. Usunięcie z końca 7. Zwrócenie wartości pierwszego elementu 8. Zwrócenie wartości środkowego elementu 9. Zwrócenie wartości ostatniego elementu