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

Podobne dokumenty
Programowanie w języku Java. Kolekcje

Programowanie Obiektowe (Java)

Kolekcje. Na podstawie:

Dawid Gierszewski Adam Hanasko

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

Kolekcje - pakiet Java Collections Framework

Kolekcje - pakiet Java Collections Framework

Realizacja ekstensji klasy. Paulina Strzelecka, Tomasz Roszkowski

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

Kolekcje obiektów. Wyj tki.

Programowanie obiektowe

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

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

java.util.* :Kolekcje Tomasz Borzyszkowski

Java Collections Framework

Programowanie i projektowanie obiektowe

KOLEKCJE JAVY API: NAJPROSTSZE PODSTAWY

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

Kolekcje. object that groups multiple elements into a single unit

Kurs programowania. Wykład 9. Wojciech Macyna

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

Kolekcje w języku Java

Zad.30. Czy można utworzyć klasę, która implementuje oba interfejsy?

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

Programowanie obiektowe i język Java

Podstawy otwartych języków programowania Przechowywanie danych

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

Platformy Programistyczne Podstawy języka Java

GUI - projektowanie interfejsów cz. II

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

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

Programowanie i projektowanie obiektowe

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

Algorytmy i Struktury Danych. Anna Paszyńska

Java SE Laboratorium nr 7. Temat: Kolekcje

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

Java niezbędnik programisty spotkanie nr 9. Java 2 Platform, Standard Edition 5.0

Java: interfejsy i klasy wewnętrzne

Comparable<Klasa_uzytkownika>

TYPY GENERYCZNE (GENERICS)

Kolekcje w Javie cz. 1

WebNotarius. Specyfikacja techniczna komunikacji z usługą WebNotarius. wersja 1.1

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

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

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

Tworzenie aplikacji w języku Java

Lista, Stos, Kolejka, Tablica Asocjacyjna

Systemy Rozproszone - Ćwiczenie 6

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

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

Kontenery i iteratory. Wykorzystanie kontenerów w praktyce.

Programowanie aplikacji mobilnych

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

Programowanie i struktury danych

STL: Lekcja 1&2. Filozofia STL

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

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

Podstawy obiektowości

Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static),

Programowanie obiektowe

Wątki. Definiowanie wątków jako klas potomnych Thread. Nadpisanie metody run().

Laboratorium 1. Wzorce oprogramowania lab1, Zofia Kruczkiewicz

Wykład 8: Obsługa Wyjątków

Programowanie i projektowanie obiektowe

Programowanie obiektowe

Klasy i obiekty cz II

Aplikacje Internetowe

Zofia Kruczkiewicz, Programowanie obiektowe - java, wykład 2 1

Dokumentacja do API Javy.

Podstawy i języki programowania

Programowanie obiektowe

Programowanie w języku Java

Java. Michał Wójcik.

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

Laboratorium z przedmiotu: Inżynieria Oprogramowania INEK Instrukcja 7

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

Jak Windows zarządza pamięcią?

Polimorfizm. dr Jarosław Skaruz

Algorytmy i Struktury Danych.

Programowanie w języku Java

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

Kompilacja javac prog.java powoduje wyprodukowanie kilku plików o rozszerzeniu.class, m.in. Main.class wykonanie: java Main

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

API STREAM WYRAŻENIA LAMBDA

Klasy abstrakcyjne, interfejsy i polimorfizm

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

1. Co można powiedzieć o poniższym kodzie (zakładając, że zaimportowano wszystkie niezbędne klasy)?

Programowanie 3 - Funkcje, pliki i klasy

Język C++ wykład VIII

Wprowadzanie danych z klawiatury. Wyjątki związane z wprowadzaniem danych, przekroczeniem rozmiaru tablicy, dzieleniem przez zero itd.

Języki i techniki programowania Ćwiczenia 2

Współbieżność w środowisku Java

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

Podstawy Programowania

Polimorfizm a klasy generyczne w języku Java. Zdzisław Spławski 1

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

Wzorce logiki dziedziny

Programowanie obiektowe

Programowanie sieciowe

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

Transkrypt:

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

Kontenery (rysunek pożyczony z Thinkin in Java ed. 3) Legenda: kreski-interfejsy kropki-kl. Abstr. 2

Przykład static Collection fill(collection c) { c.add("dog"); c.add("dog"); c.add("cat"); return c; } static Map fill(map m) { m.put("dog", "Bosco"); m.put("dog", "Spot"); m.put("cat", "Rags"); return m; } public static void test() { System.out.println(fill(new ArrayList())); System.out.println(fill(new HashSet())); System.out.println(fill(new HashMap())); } [dog, dog, cat] [dog, cat] {dog=spot, cat=rags} 3

Co może być w zbiorze? Set zbior = new HashSet(); Kot[] koty = {new Kot("Bonifacy"),new Kot("Filemon"),new Kot("Filemon")}; //czy w zbiorze mogą być trzy takie same koty? zbior.addall(arrays.aslist(koty)); System.out.println(zbior.size()); //??? zbior.add(new Pies("Reksio")); for (Iterator iter = zbior.iterator(); iter.hasnext();) { System.out.println(iter.next()); } //zbior.add(new Pies("Reksio")); //for (Iterator iter = zbior.iterator(); iter.hasnext();) { // Kot element = (Kot) iter.next(); // System.out.println(element); //} 4

Interfejs Collection boolean add(object) po poprawny wykonaniu tej operacji kontener zawiera dodawany element. false jeżeli elementu nie trzeba dodawać, bądź nie można. (optional) boolean addall(collection) analogicznie tylko dla kolekcji (optional) void clear( ) po wykonaniu kontener będzie pusty (optional) boolean contains(object) true jeżeli kontener zawiera dany argument boolean containsall(collection) analogicznie boolean isempty( ) true jeżeli kontener nie zawiera żadnych elementów Iterator iterator( ) zwraca iterator do przeglądania elementów kontenera boolean remove(object) jeżeli element znajduje się w kontenerze to usuwa jeden egzemplarz. Wynik wskazuje czy coś usunięto (optional) boolean removeall(collection) analogicznie (optional) boolean retainall(collection) kontener będzie zawierał teoriomnogościowe przecięcie. Wynik wskazuje czy coś się zmieniło (optional) int size( ) ilość elementów w kontenerze Object[] toarray( ) tablica zawierająca elementy kontenera (nie ma nic wspólnego z tym jak kontener trzyma obiekty) Object[] toarray(object[] a) zwracana tablica będzie miała rzeczywisty typ jak tablica przekazana jako argument, co więcej jeżeli kolekcja mieści się w przekazanej tablicy to właśnie ona będzie wypełniona (na końcu będą nulle) 5

O co chodzi z optional? Nie wszystkie klasy muszą implementować wszystkie metody. Niezaimplementowane metody powinny zgłaszać UnsupportedOperationException (podklasa RuntimeException). Takie wyjątki nie zdarzają się często, a łatwiej się nauczyć posługiwać biblioteką z prostą hierarchią Dokumentacja metod, które jako argument przyjmują kolekcje powinna wskazywać jakie metody będą używane. List l = Arrays.asList(new String[] {"a", "b", "c"}); System.out.println(l.getClass().getName()); l.add("d"); Wynik: java.util.arrays$arraylist Exception in thread "main" java.lang.unsupportedoperationexception at java.util.abstractlist.add(unknown Source) at java.util.abstractlist.add(unknown Source) at w8.test.main(test.java:90) 6

Własne niezmienialne kolekcje Klasa Collections zawiera metody zwracające wersję tylko do odczytu, dla podanej kolekcji, zbioru, listy, mapy. List l = new LinkedList(); l.add("a"); l.add("b"); l.add("c"); List u = Collections.unmodifiableList(l); l.set(0, "x"); //u.set(0, "x"); System.out.println(l); System.out.println(u); Wynik: [x, b, c] [x, b, c] 7

Klasa Collections max(collection), min(collection) Zwraca największy/najmniejszy element kolekcji. Elementy muszą implementować Comparable. Są też przeciążone odpowiedniki przyjmujące Comparator. indexofsublist(list source, List target) Zwraca indeks pierwszego wystąpienia taget w source lastindexofsublist(list source, List target) Produces starting index of the last place where target appears inside source. replaceall(list list, Object oldval, Object newval) Zamienia wszystkie wystąpienia oldval na newval. reverse(list list) Odwraca listę w liniowym czasie. rotate(list list, int distance) Przepycha elementy listy do przodu (te wypychane z końca przeskakują na początek). Można używać w połączeniu z lista.sublist(i,j). copy(list dest, List src) Kopiuje elementy z src na te same indeksy w dest (musi starczyć miejsca). Pozostałych nie rusza. fill(list list, Object o) Zamienia wszystkie elementy listy na o. ncopies(int n, Object o) Podobnie jak powyżej, ale tworzona jest lista o zadanej długości. shuffle(list list) Losowo miesza listę. 8