Kolekcje. Na podstawie:

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

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

Programowanie Obiektowe (Java)

Realizacja ekstensji klasy. Paulina Strzelecka, Tomasz Roszkowski

Programowanie obiektowe

Kolekcje - pakiet Java Collections Framework

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

KOLEKCJE JAVY API: NAJPROSTSZE PODSTAWY

Programowanie i projektowanie obiektowe

Kolekcje - pakiet Java Collections Framework

Kolekcje w języku Java

Java Collections Framework

java.util.* :Kolekcje Tomasz Borzyszkowski

GUI - projektowanie interfejsów cz. II

Tworzenie aplikacji w języku Java

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

Java SE Laboratorium nr 7. Temat: Kolekcje

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.

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

Dawid Gierszewski Adam Hanasko

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

Programowanie aplikacji mobilnych

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

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

Kompletna dokumentacja kontenera C++ vector w -

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

Lista, Stos, Kolejka, Tablica Asocjacyjna

Kolekcje w Javie cz. 1

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

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

Struktury Danych i Złożoność Obliczeniowa

Programowanie Komponentowe Zarządzanie obiektami: kontenery

Comparable<Klasa_uzytkownika>

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

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

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

Programowanie i struktury danych

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

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

STL Standardt Template Library (wprowadzenie)

Zaawansowane programowanie w języku C++ Biblioteka standardowa

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

Kontenery i iteratory. Wykorzystanie kontenerów w praktyce.

Programowanie sieciowe

STL: Lekcja 1&2. Filozofia STL


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

API STREAM WYRAŻENIA LAMBDA

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

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

Laboratorium z przedmiotu Programowanie obiektowe - zestaw 04

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

Java: interfejsy i klasy wewnętrzne

Programowanie w języku Java 7 z biblioteką SWING

WSTĘP DO INFORMATYKI. Struktury liniowe

Wstęp do Programowania potok funkcyjny

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

Wstęp do programowania

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

Języki i techniki programowania Ćwiczenia 2

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

Java. Michał Wójcik.

Algorytmy i Struktury Danych.

Wykład 4. Tablice. Pliki

Aplikacje Internetowe

Struktury danych (I): kolejka, stos itp.

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

Tabela wewnętrzna - definicja

Algorytmy i struktury danych

Programowanie Obiektowe Java

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

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

Instrukcja 2 Laboratorium z Podstaw Inżynierii Oprogramowania

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

Algorytmy i Struktury Danych. Anna Paszyńska

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

Zaawansowane programowanie w C++ (PCP)

Podstawy programowania. Podstawy C# Tablice

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

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

Projektowanie obiektowe Wzorce projektowe. Gang of Four Wzorce rozszerzeń

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

Programowanie obiektowe

Programowanie w C++ z użyciem kontenerów - parę przykładów programów Opracowanie: dr hab. Mirosław R. Dudek, prof. UZ

TYPY GENERYCZNE (GENERICS)

Comparable<String>, CharSequence. Indicates whether some other object is "equal to" this one. int hashcode() Returns a hash code value for the object.

Klasy abstrakcyjne, interfejsy i polimorfizm

Narzędzia 2. dr inż. Tadeusz Jeleniewski

Struktury. Przykład W8_1

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)

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami.

Transkrypt:

Kolekcje Na podstawie: http://wazniak.mimuw.edu.pl

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 Zwiększa jakość i szybkość działania Łatwiejsze wzajemne oddziaływanie Łatwiej się nauczyć jednego API Łatwiej zaprojektować API Łatwiej o re-use kodu Jak jest potrzebna lista/stos/kolejka, to po co ją programować od zera? Lepiej skoncentrować się na ważnych elementach! Stworzona kolekcja jest zoptymalizowana. Więcej: istnieją różne implementacje tej samej kolekcji (np. dla listy: ArrayList oraz LinkedLista) zoptymalizowane pod konkretne zastosowania. Kolekcje mają zdefiniowane standardowe podejścia. Większość z modyfikatorów jest zgodna pomiędzy różnymi rodzajami kolekcji. Przejście z jednego rodzaju na drugi jest bezbolesne. Po co wynajdować koło od nowa skoro można użyć standardowych rozwiązań? 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 Ala ma kota i czipsy 0 1 2 3 4 Dostęp pozycyjny do elementów Object get(int indeks) Object set(int indeks) Object add(int indeks) Object remove(int indeks) Wyszukiwanie int indexof(object obiekt) int lastindexof(object obiekt) Widok przedziałowy 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 dynamiczn e Struktury drzewiaste Set HashSet TreeSet Listy List ArrayList LinkedList Queue Deque ArrayDeque LinkedList Map HashMap TreeMap 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. Przerób program Filmoteka aby korzystał z kolekcji. 3. Zacznij robić projekt zaliczeniowy