Programowanie obiektowe

Podobne dokumenty
Programowanie i projektowanie obiektowe

Programowanie w języku Java. Kolekcje

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

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

KOLEKCJE JAVY API: NAJPROSTSZE PODSTAWY

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

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

Kolekcje. Na podstawie:

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

Kolekcje - pakiet Java Collections Framework

Realizacja ekstensji klasy. Paulina Strzelecka, Tomasz Roszkowski

Kolekcje - pakiet Java Collections Framework

Programowanie Obiektowe (Java)

Kolekcje. object that groups multiple elements into a single unit

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

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

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

Java Collections Framework

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

Comparable<Klasa_uzytkownika>

Kolekcje obiektów. Wyj tki.

java.util.* :Kolekcje Tomasz Borzyszkowski

Kurs programowania. Wykład 9. Wojciech Macyna

Java SE Laboratorium nr 7. Temat: Kolekcje

Dawid Gierszewski Adam Hanasko

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

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

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

Kolekcje w języku Java

Podstawy otwartych języków programowania Przechowywanie danych

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

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

Platformy Programistyczne Podstawy języka Java

Programowanie sieciowe

Tworzenie aplikacji w języku Java

Programowanie obiektowe

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

Programowanie w Javie- wykład 12 Kolekcje (zbiory)

Kolekcje w Javie cz. 1

TYPY GENERYCZNE (GENERICS)

API STREAM WYRAŻENIA LAMBDA

Programowanie obiektowe

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

Programowanie obiektowe i język Java

Lista, Stos, Kolejka, Tablica Asocjacyjna

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

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

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

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

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

Laboratorium z przedmiotu: Inżynieria Oprogramowania INEK Instrukcja 7

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

Programowanie w środowisku graficznym- wykład 7 Kolekcje (listy, zbiory)

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016

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

GUI - projektowanie interfejsów cz. II

Programowanie obiektowe

Java: interfejsy i klasy wewnętrzne

Programowanie obiektowe

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

Przykład użycia iteratora dla zbioru. Który z poniższych przykładów jest poprawny i dlaczego?

Programowanie i projektowanie obiektowe

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

Kurs programowania. Wykład 13. Wojciech Macyna. 14 czerwiec 2017

Programowanie obiektowe

Algorytmy i Struktury Danych.

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

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

Programowanie obiektowe

Aplikacje Internetowe

Wstęp do ruby dla programistów javy

Wykład 2 Wybrane konstrukcje obiektowych języków programowania (1)

Programowanie i projektowanie obiektowe

Laboratorium z przedmiotu: Inżynieria Oprogramowania INEK Instrukcja 6

Programowanie w języku Java. Bazy danych SQLite w Javie

Pętle while, for, do while, instrukcje break, continue, switch 1. Pętle

Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie

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

Podejście obiektowe. Tablice obiektów Przykład 1 metody i atrybuty statyczne oraz niestatyczne

Aplikacje Internetowe. Najprostsza aplikacja. Komponenty Javy. Podstawy języka Java

Polimorfizm, metody wirtualne i klasy abstrakcyjne

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej

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

Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie

Instrukcja 2 Laboratorium z Podstaw Inżynierii Oprogramowania

Języki i metody programowania Java Obsługa zdarzeń - przykłady

JAVA W SUPER EXPRESOWEJ PIGUŁCE

Klasy generyczne. ZbiórLiczb. ZbiórCzegokolwiek. Zbiór

Podejście obiektowe. Tablice (1) obiektów

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

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

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

Klasy i obiekty cz II

Wykład 7: Pakiety i Interfejsy

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

Java Programowanie Obiektowe Ćwiczenie 1- wprowadzenie

dziedziczenie - po nazwie klasy wystąpią słowa: extends nazwa_superklasy

Diagram stanów Laboratorium 9

Programowanie Obiektowe Java

Transkrypt:

Programowanie obiektowe Wykład 8: Tablice i kolekcje obiektów. 4/27/2013 S.Deniziak: Programowanie obiektowe - Java 1 Tablice class A { A [ ] a; A [ ] b=new A[5]; a b A [ ] c = {new A(), new A(), new A(), new A(), newa() c c.length == 5 A A A A A c[0],c[1],c[2],c[3],c[4]; Klasa Arrays (java.util) - statyczne metody: equals(), deepequals(), binarysearch(), fill(), sort(), tostring(), aslist() działające na tablicach dowolnych typów (też obiektów) 4/27/2013 S.Deniziak: Programowanie obiektowe - Java 2 1

Operacje na tablicach Wypełnianie tablic: char [ ] a= new char[10]; Arrays.fill(a, x ); - wypełnianie całej tablicy Arrays.fill(a,4,8, y ); - wypełnianie od a[4] do a[8] Kopiowanie tablic: Integer [ ] b= new Integer[5]; Integer [ ] c= new Integer[10]; System.arraycopy(a,0,b,5,a.length); od a[0] do b[5] a.length elementów Porównywanie tablic: String [ ] s1 = { Test, Test, Test ; String [ ] s2 = new String[3]; Arrays.fill(s2, Test ); Arrays.equals(s1,s2); - porównywanie płytkie (False) Arrays.deepEquals(s1,s2); - porównywanie głębokie (True) 4/27/2013 S.Deniziak: Programowanie obiektowe - Java 3 Operacje na tablicach, cd. Sortowanie tablic: String [ ] s = new String[10]; Arrays.sort(s); - sortowanie całej tablicy Arrays.sort(a,4,8); - sortowanie od a[4] do a[8] Interface Comparable<T>; => int compareto(t o) Interface Comparator<T>; => int compare (T o1, T o2) -1 => o1<o2 0 => o1==o2 1 => o1>o2 public class MojComp implements Comparator<Object>; public int compare (Object o1, Object o2){ String s1 = (String) o1; String s2 = (String o2; return s1.tolowercase().compareto(s2.tolowercase()); Arrays.sort(s, new MojComp()); Arrays.sort(s, 4, 8, new MojComp() 4/27/2013 S.Deniziak: Programowanie obiektowe - Java 4 2

Operacje na tablicach, cd. Przeszukiwanie tablic posortowanych: String [ ] s = new String[10]; int index = Arrays.binarySearch(s, Test ); 0..length-1 => pozycja znaleziona -pozycja wstawienia-1 => gdy nie znaleziono int index = Arrays.binarySearch(s, Test, new MojComp()); 4/27/2013 S.Deniziak: Programowanie obiektowe - Java 5 Kolekcje obiektów interfejsy kolekcji (java.util) 4/27/2013 S.Deniziak: Programowanie obiektowe - Java 6 3

Interfejs Collection public interface Collection <E> extends Iterable<E> { // Operacje podstawowe int size(); boolean isempty(); boolean contains(object element); boolean add(e element); boolean remove(object element); Iterator<E> iterator(); // Operacje na całych kolekcjach boolean containsall(collection c); boolean addall(collection<? extends E> c); boolean removeall(collection<?> c); boolean retainall(collection<?> c); void clear(); // Operacje na tablicach Object[ ] toarray(); <T> T[ ] toarray(t[ ] a); public interface Iterator<E> { boolean hasnext(); E next(); void remove(); 4/27/2013 S.Deniziak: Programowanie obiektowe - Java 7 Interfejs Set public interface Set<E> extends Collection<E> { Nie może zawierać zduplikowanych elementów. 4/27/2013 S.Deniziak: Programowanie obiektowe - Java 8 4

Interfejs List public interface List<E> extends Collection<E> { // Dostęp wg. pozycji E get(int index); E set(int index, E element); boolan add(e element); void add(int index, E element); E remove(int index); boolean addall(int index, Collection<? extends E> c); // Szukanie int indexof(object o); int lastindexof(object o); // Iteratory ListIterator<E> listiterator(); ListIterator<E> listiterator(int index); // Podlista (bez elementu to ) List<E> sublist(int from, int to); public interface ListIterator<E> extends Iterator<E> { boolean hasnext(); E next(); boolean hasprevious(); E previous(); int nextindex(); int previousindex(); void remove(); void set(e o); void add(e o); 4/27/2013 S.Deniziak: Programowanie obiektowe - Java 9 Interfejs Queue public interface Queue<E> extends Collection<E> { E element(); boolean offer(e e); E peek(); E poll(); E remove(); Operacja Dodanie elementu Usunięcie elementu Sprawdzenie Sygnalizacja wyjątku add() remove() element() Wartość null lub false offer() poll() peek() 4/27/2013 S.Deniziak: Programowanie obiektowe - Java 10 5

Interfejs Map public interface Map <K,V>{ // Operacje podstawowe V put(k key, V value); V get(object key); V remove(object key); boolean containskey(object key); boolean containsvalue(object value); int size(); boolean isempty(); // Operacja na mapie void putall(map<? extends V> m); void clear(); // Operacja na kolekcjach public Set<K> keyset(); public Collection<V> values(); public Set<Map.Entry<K,V>> entryset(); // interfejs zbioru zwracanego przez metodę entryset() public interface Entry { K getkey(); V getvalue(); V setvalue(v value); Klucz Klucz Wartość Wartość 4/27/2013 S.Deniziak: Programowanie obiektowe - Java 11 Interfejs SortedSet public interface SortedSet<E> extends Set<E> { //Zakresy SortedSet<E> subset(e fromelement, E toelement); SortedSet<E> headset(e toelement); //bez to SortedSet<E> tailset(e fromelement); // dostęp do skrajnych elementów E first(); E last(); // Komparator Comparator<? super E> comparator(); 4/27/2013 S.Deniziak: Programowanie obiektowe - Java 12 6

Interfejs SortedMap public interface SortedMap<K,V> extends Map<K,V> { Comparator<? super K> comparator(); SortedMap<K,V> submap(k fromkey, K tokey); SortedMap<K,V> headmap(k tokey); SortedMap<K,V> tailmap(k fromkey); K firstkey(); K lastkey(); 4/27/2013 S.Deniziak: Programowanie obiektowe - Java 13 Podstawowe implementacje kolekcji Implementacja Hash Table Resizable Array Balanced Tree Linked List Hash Table +Linked List Set HashSet TreeSet LinkedHashSet Interfejs List Queue ArrayList LinkedList LinkedList Map HashMap TreeMap LinkedHashMap 4/27/2013 S.Deniziak: Programowanie obiektowe - Java 14 7

Kolekcje z funkcją haszującą new HashMap(n,p) współczynnik wypełnienia (0.75) 0 1 2 el1 el3 el4 Element hashcode() k el2 n-1 4/27/2013 S.Deniziak: Programowanie obiektowe - Java 15 Wyspecjalizowane implementacje kolekcji EnumSet, CopyOnWriteArraySet CopyOnWriteArrayList EnumMap, WeakHashMap, IdentityHashMap, ConcurrentHashMap PriorityQueue, LinkedBlockingQueue, ArrayBlockingQueue, PriorityBlockingQueue, DelayQueue, SynchronousQueue 4/27/2013 S.Deniziak: Programowanie obiektowe - Java 16 8

Klasa Collections Metody Statyczne: sort() - sortowanie list binarysearch() - wyszukiwanie binarne na liście copy() - kopiowanie elementów z jednej listy do drugiej shuffle() - permutacja elementów na liście reverse() - odwrócenie listy max(), min() - najwiekszy i najmniejszy element w kolekcji unmodifiablemap()- utworzenie niemodyfikowalnych kolekcji unmodifiableset() unmodifiablelist() unmodifiablecollection() 4/27/2013 S.Deniziak: Programowanie obiektowe - Java 17 Instrukcja for-each for (T zmienna : kolekcja_lub_tablica) instrukcja; int[] numbers = {1,2,3,4,5,6,7,8,9,10; for (int item : numbers) { System.out.println("Count is: " + item); 4/27/2013 S.Deniziak: Programowanie obiektowe - Java 18 9

Przykład import java.util.*; public class PrintingContainers { static Collection<String> fill(collection<string> c) { c.add("pies"); c.add("pies"); c.add("kot"); return c; static Map<String,String> fill(map<string,string> m) { m.put("pies", "As"); m.put("pies", "Pluto"); m.put("kot", "Filemon"); return m; public static void main(string[] args) { System.out.println(fill(new ArrayList<String>())); System.out.println(fill(new HashSet<String>())); System.out.println(fill(new HashMap<String,String>())); Wynik: [pies, pies, kot] [pies,kot] [kot=filemon, pies=pluto] 4/27/2013 S.Deniziak: Programowanie obiektowe - Java 19 Pytania 1. Do czego służy i w jakich kolekcjach występuje iterator? 2. Różnice pomiędzy zbiorem a listą. 3. Jak przeglądać wszystkie elementy w mapie? 4/27/2013 S.Deniziak: Programowanie obiektowe - Java 20 10

Koniec 4/27/2013 S.Deniziak: Programowanie obiektowe - Java 21 11