Comparable<String>, CharSequence. Indicates whether some other object is "equal to" this one. int hashcode() Returns a hash code value for the object.
|
|
- Lidia Nowacka
- 8 lat temu
- Przeglądów:
Transkrypt
1 Przechowywanie obiektów w pamięci programu Część I (obiekty typu String) (wg ) 1.Obiekty typu String Elementy typu String są przystosowane do przechowywania w pojemnikach mogą być wyszukiwane, sortowane, usuwane itp. dzięki przedefiniowaniu metod equals oraz hashcode, dziedziczonych po klasie Object i implementacji metody compareto z interfejsu Comparable. public final class String extends Object implements Serializable, Comparable<String>, CharSequence public interface Comparable<T> { public int compareto(t o); public class Object { // boolean equals(object obj) Indicates whether some other object is "equal to" this one. int hashcode() Returns a hash code value for the object. Klasa String ma przedefiniowane metody equals oraz hashcode oraz zaimplementowaną metodę compareto. int compareto(string anotherstring) Compares two strings lexicographically. int hashcode() Returns a hash code for this string. boolean equals(object anobject) Compares this string to the specified object. Autor, Zofia Kruczkiewicz - Programowanie obiektowe Java, Pojemniki na obiekty, część 1 1
2 2. Tablice Klasa usługowa Arrays pozwala między innymi wyszukiwać i sortować tablice wypełnione typami obiektowymi i nie obiektowymi. public class Arrays extends Object Method Summary static <T> List<T> aslist(t... a) Returns a fixed-size list backed by the specified array. static int binarysearch(byte[] a, byte key) Searches the specified array of bytes for the specified value using the binary search algorithm. static int binarysearch(char[] a, char key) Searches the specified array of chars for the specified value using the binary search algorithm. static int binarysearch(double[] a, double key) Searches the specified array of doubles for the specified value using the binary search algorithm. static int binarysearch(float[] a, float key) Searches the specified array of floats for the specified value using the binary search algorithm. static int binarysearch(int[] a, int key) Searches the specified array of ints for the specified value using the binary search algorithm. static int binarysearch(long[] a, long key) Searches the specified array of longs for the specified value using the binary search algorithm. static int binarysearch(object[] a, Object key) Searches the specified array for the specified object using the binary search algorithm. static int binarysearch(short[] a, short key) Searches the specified array of shorts for the specified value using the binary search algorithm. static<t> int binarysearch(t[] a, T key, Comparator<? super T> c) Searches the specified array for the specified object using the binary search algorithm. static boolean deepequals(object[] a1, Object[] a2) Returns true if the two specified arrays are deeply equal to one another. static int deephashcode(object[] a) Returns a hash code based on the "deep contents" of the specified array. static String deeptostring(object[] a) Returns a string representation of the "deep contents" of the specified array. static boolean equals(boolean[] a, boolean[] a2) Returns true if the two specified arrays of booleans are equal to one another. static boolean equals(byte[] a, byte[] a2)returns true if the two specified arrays of bytes are equal to one another. static boolean equals(char[] a, char[] a2)returns true if the two specified arrays of chars are equal to one another. static boolean equals(double[] a, double[] a2) Returns true if the two specified arrays of doubles are equal to one another. static boolean equals(float[] a, float[] a2)returns true if the two specified arrays of floats are equal to one another. static boolean equals(int[] a, int[] a2) Returns true if the two specified arrays of ints are equal to one another. Autor, Zofia Kruczkiewicz - Programowanie obiektowe Java, Pojemniki na obiekty, część 1 2
3 static boolean equals(long[] a, long[] a2)returns true if the two specified arrays of longs are equal to one another. static boolean equals(object[] a, Object[] a2) Returns true if the two specified arrays of Objects are equal to one another. static boolean equals(short[] a, short[] a2)returns true if the two specified arrays of shorts are equal to one another. static void fill(boolean[] a, boolean val) Assigns the specified boolean value to each element of the specified array of booleans. static void fill(boolean[] a, int fromindex, int toindex, boolean val) Assigns the specified boolean value to each element of the specified range of the specified array of booleans. static void fill(byte[] a, byte val) Assigns the specified byte value to each element of the specified array of bytes. static void fill(byte[] a, int fromindex, int toindex, byte val) Assigns the specified byte value to each element of the specified range of the specified array of bytes. static void fill(char[] a, char val)assigns the specified char value to each element of the specified array of chars. static void fill(char[] a, int fromindex, int toindex, char val) Assigns the specified char value to each element of the specified range of the specified array of chars. static void fill(double[] a, double val) Assigns the specified double value to each element of the specified array of doubles. static void fill(double[] a, int fromindex, int toindex, double val) Assigns the specified double value to each element of the specified range of the specified array of doubles. static void fill(float[] a, float val)assigns the specified float value to each element of the specified array of floats. static void fill(float[] a, int fromindex, int toindex, float val) Assigns the specified float value to each element of the specified range of the specified array of floats. static void fill(int[] a, int val) static void fill(int[] a, int fromindex, int toindex, int val) Assigns the specified int value to each element of the specified array of ints. Assigns the specified int value to each element of the specified range of the specified array of ints. static void fill(long[] a, int fromindex, int toindex, long val) Assigns the specified long value to each element of the specified range of the specified array of longs. static void fill(long[] a, long val) Assigns the specified long value to each element of the specified array of longs. static void fill(object[] a, int fromindex, int toindex, Object val) Assigns the specified Object reference to each element of the specified range of the specified array of Objects. static void fill(object[] a, Object val) Assigns the specified Object reference to each element of the specified array of Objects. static void fill(short[] a, int fromindex, int toindex, short val) Assigns the specified short value to each element of the specified range of the specified array of shorts. static void fill(short[] a, short val)assigns the specified short value to each element of the specified array of shorts. static int hashcode(boolean[] a) static int hashcode(byte[] a) static int hashcode(char[] a) static int hashcode(double[] a) Returns a hash code based on the contents of the specified array. Returns a hash code based on the contents of the specified array. Returns a hash code based on the contents of the specified array. Returns a hash code based on the contents of the specified array. Autor, Zofia Kruczkiewicz - Programowanie obiektowe Java, Pojemniki na obiekty, część 1 3
4 static int hashcode(float[] a) static int hashcode(int[] a) static int hashcode(long[] a) static int hashcode(object[] a) static int hashcode(short[] a) static void sort(byte[] a) static void sort(byte[] a, int fromindex, int toindex) static void sort(char[] a) Returns a hash code based on the contents of the specified array. Returns a hash code based on the contents of the specified array. Returns a hash code based on the contents of the specified array. Returns a hash code based on the contents of the specified array. Returns a hash code based on the contents of the specified array. Sorts the specified array of bytes into ascending numerical order. Sorts the specified range of the specified array of bytes into ascending numerical order. Sorts the specified array of chars into ascending numerical order. static void sort(char[] a, int fromindex, int toindex) Sorts the specified range of the specified array of chars into ascending numerical order. static void sort(double[] a) Sorts the specified array of doubles into ascending numerical order. static void sort(double[] a, int fromindex, int toindex) Sorts the specified range of the specified array of doubles into ascending numerical order. static void sort(float[] a) static void sort(float[] a, int fromindex, int toindex) static void sort(int[] a) Sorts the specified array of floats into ascending numerical order. Sorts the specified range of the specified array of floats into ascending numerical order. Sorts the specified array of ints into ascending numerical order. static void sort(int[] a, int fromindex, int toindex) Sorts the specified range of the specified array of ints into ascending numerical order. static void sort(long[] a) static void sort(long[] a, int fromindex, int toindex) Sorts the specified array of longs into ascending numerical order. Sorts the specified range of the specified array of longs into ascending numerical order. static void sort(object[] a) Sorts the specified array of objects into ascending order, according to the natural ordering of its elements. static void sort(object[] a, int fromindex, int toindex) Sorts the specified range of the specified array of objects into ascending order, according to the natural ordering of its elements. static void sort(short[] a) static void sort(short[] a, int fromindex, int toindex) Sorts the specified array of shorts into ascending numerical order. Sorts the specified range of the specified array of shorts into ascending numerical order. static<t> void sort(t[] a, Comparator<? super T> c) Sorts the specified array of objects according to the order induced by the specified comparator. static<t> void sort(t[] a, int fromindex, int toindex, Comparator<? super T> c) Sorts the specified range of the specified array of objects according to the order induced by the specified comparator. static String tostring(boolean[] a) static String tostring(byte[] a) static String tostring(char[] a) Returns a string representation of the contents of the specified array. Returns a string representation of the contents of the specified array. Returns a string representation of the contents of the specified array. Autor, Zofia Kruczkiewicz - Programowanie obiektowe Java, Pojemniki na obiekty, część 1 4
5 static String tostring(double[] a) static String tostring(float[] a) static String tostring(int[] a) static String tostring(long[] a) static String tostring(object[] a) static String tostring(short[] a) Returns a string representation of the contents of the specified array. Returns a string representation of the contents of the specified array. Returns a string representation of the contents of the specified array. Returns a string representation of the contents of the specified array. Returns a string representation of the contents of the specified array. Returns a string representation of the contents of the specified array. Methods inherited from class java.lang.object clone, equals, finalize, getclass, hashcode, notify, notifyall, tostring, wait, wait, wait Przykład 1 operacje na tablicach o elementach typu byte oraz String import java.lang.*; import java.util.*; public class Tablice1 { static byte tablica1[]; static String tablica2[]; static public void wypelnij1(int n) { tablica1=new byte[n]; Random r=new Random(n); for (int i=0; i<tablica1.length;i++) tablica1[i]=(byte)(65+r.nextint(26)); //generowanie kodów ASCCI dużych liter Autor, Zofia Kruczkiewicz - Programowanie obiektowe Java, Pojemniki na obiekty, część 1 5
6 static byte klucz1(int n) { Random r=new Random(n); return (byte)(65+r.nextint(26)); static String klucz2(int n) { wypelnij1(n); return new String(tablica1); static public void wypelnij2(int n) { tablica2=new String[n]; for (int i=0; i<tablica2.length;i++) { wypelnij1(i+1); tablica2[i]=new String(tablica1); // String(byte[] bytes) // tworzy łańcuch przez konwertowanie tablicy bajtów jako domyślnych kodów znaków public static void main(string args[]) { wypelnij2(10); wypelnij1(10); System.out.println("\n"+Arrays.toString(tablica1)); System.out.println("\n"+Arrays.toString(tablica2)); Arrays.sort(tablica1); Arrays.sort(tablica2); System.out.println("\n"+Arrays.toString(tablica1)); System.out.println("\n"+Arrays.toString(tablica2)); byte a1=klucz1(5); int b1=arrays.binarysearch(tablica1,a1); System.out.println("\n"+"Znaleziono w tablicy 1 "+a1+" na pozycji "+b1); String a2=klucz2(5); int b2=arrays.binarysearch(tablica2,a2); System.out.println("\n"+"Znaleziono w tablicy 2 "+a2+" na pozycji "+b2); Autor, Zofia Kruczkiewicz - Programowanie obiektowe Java, Pojemniki na obiekty, część 1 6
7 Właściwości pojemników: 3. Pojemniki na obiekty Interfejsy (interfaces): abstrakcyjne typy danych, które deklarują abstrakcyjne operacje na elementach umieszczonych w pojemnikach niezależnie od implementacji Implementacje (Implementations): Zdefiniowano klasy, które implementują metody abstrakcyjnych pojemników (interfejsów) Algorytmy (Algorithms): Zastosowano wydajne algorytmy wyszukiwania, sortowania itp. do operacji na danych umieszczonych w różnych typach zaimplementowanych pojemników. Zróżnicowanie algorytmów osiągnięto za pomocą polimorfizmu. Zalety pojemników: Proste zastosowanie w programach dla różnych typów elementów umieszczanych w pojemnikach dzięki zastosowaniu polimorfizmu narzucającemu cechy przechowywanych elementów Poprawiąją szybkość działania programów i ich jakość Wprowadzają standard w obsłudze różnych typów pojemników (rola interfejsów) Ograniczają wysiłek przy poznawaniu kolejnych pojemników (rola interfejsów) Ograniczają wysiłek przy tworzeniu nowych pojemników dzięki wprowadzeniu systemu interfejsów Wprowadzają wieloużywalność oprogramowania Rodzina interfejsów określających typy pojemników Autor, Zofia Kruczkiewicz - Programowanie obiektowe Java, Pojemniki na obiekty, część 1 7
8 Dwa typy pojemników 1) Kolekcje (Collection) gromadzą elementy obiektowe 1.1) (List) - z możliwością powtarzania wartości elementów 1.2) (Set) - bez możliwości powtarzania wartości elementów i z możliwością sortowania elementów (SortedSet ) 1.3) (Quene) wymaga imlementowania specjalnych operacji wstawiania, usuwania oraz przeszukiwania 2) Mapy (Map) gromadzą dane jako pary: klucz i odpowiadający mu element (obiektowy). Klucz nie może się powtarzać. Mapy mogą być wielowymiarowe, podobnie jak tablice i mogą sortować elementy (SortedMap) Implementacje pojemników Interfaces Hash table General-purpose Implementations Resizable array Implementations Tree Linked list Hash table + Linked list Set HashSet TreeSet LinkedHashSet List ArrayList LinkedList Quene Map HashMap TreeMap LinkedHashMap Autor, Zofia Kruczkiewicz - Programowanie obiektowe Java, Pojemniki na obiekty, część 1 8
9 Funkcjonalność pojemników 1) Funkcjonalność pojemników typu Collection public interface Collection<E> extends Iterable<E> { // Podstawowe operacje int size(); boolean isempty(); boolean contains(object element); boolean add(e element); // opcjonalne boolean remove(object element); // opcjonalne Iterator iterator(); //operacje na zbiorach elementów boolean containsall(collection<?> c); boolean addall(collection<? extends E> c); boolean removeall(collection<?> c); // opcjonalne boolean retainall(collection<?> c); // opcjonalne void clear(); // opcjonalne // operacje tablicowe Object[] toarray(); <T> T[] toarray(t[] a); Proste pobieranie elementów umieszczonych w pojemniku public interface Iterator<E> { boolean hasnext(); E next(); void remove(); //opcjonalne Autor, Zofia Kruczkiewicz - Programowanie obiektowe Java, Pojemniki na obiekty, część 1 9
10 1.1) Funkcjonalność pojemników typu List public interface List<E> extends Collection<E> { //dostęp pozycyjny E get(int index); E set(int index, E element); //opcjonalne boolean add(e element); //opcjonalne void add(int index, E element); //opcjonalne E remove(int index); //opcjonalne abstract boolean addall(int index, Collection<? extends E> c); //opcjonalne //wyszukiwanie int indexof(object o); int lastindexof(object o); //Iteracje ListIterator<E> listiterator(); ListIterator<E> listiterator(int index); //operacje na fragmencie listy 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(); //opcjonalne void set(e o); //opcjonalne void add(e o); //opcjonalne Autor, Zofia Kruczkiewicz - Programowanie obiektowe Java, Pojemniki na obiekty, część 1 10
11 Algorytmy klasy Collections (spełnia taką samą rolę dla pojemników jak klasa Arrays dla tablic) sort sortuje listę elementów za pomocą algorytmu sortowania przez łączenie shuffle losowo przemieszcza elementy w tablicy reverse odwraca położenie elementów w pojemniku rotate zmienia położenie elementów wg ustalonej odległości swap zamienia elementy miejscami na wyznaczonych pozycjach replaceall zmienia wszystkie wystąpienia podanej wartości na inną fill wypełnia pojemnik elemetami o wyznaczonej wartości copy kopiuje wyznaczoną kolekcję elementów do drugiej kolekcji binarysearch wyszukuje element w posortowanej kolekcji za pomocą algorytmu wyszukiwania połówkowego indexofsublist zwraca indeks pierwszej podlisty, która jest równa podanej lastindexofsublist zwraca indeks ostatniej podlisty, która jest równa podanej public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, Serializable ArrayList Interfejs List jest implementowany jako tablica o szybkim, (swobodnym) dostępie do elementów. Charakteryzuje się wolnym usuwaniem i wstawianiem elementów. public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Queue<E>, Cloneable, Serializable LinkedList reprezentuje optymalny sekwencyjny dostęp do elementów i wolniejszy niż w ArrayList dostęp swobodny do elementów. Dodatkowe metody: addfirst( ), addlast( ), getfirst( ), getlast( ), removefirst( ), removelast( ) Oba typy pojemników pozwalają na tworzenie kopii elementów Autor, Zofia Kruczkiewicz - Programowanie obiektowe Java, Pojemniki na obiekty, część 1 11
12 1.2) Funkcjonalność pojemników typu SET public interface Set<E> extends Collection<E> { // podstawowe operacje int size(); boolean isempty(); boolean contains(object element); boolean add(e element); //opcjonalne boolean remove(object element); //opcjonalne Iterator iterator(); //operacje na zbiorach elementów boolean containsall(collection<?> c); boolean addall(collection<? extends E> c); boolean removeall(collection<?> c); boolean retainall(collection<?> c); void clear(); //opcjonalne //opcjonalne //opcjonalne // operacje na tablicach Object[] toarray(); <T> T[] toarray(t[] a); public interface SortedSet<E> extends Set<E> { // działanie w wyznaczonych podzbiorach elementów SortedSet<E> subset(e fromelement, E toelement); SortedSet<E> headset(e toelement); SortedSet<E> tailset(e fromelement); //punkty końcowe E first(); E last(); //porównywanie Comparator<? super E> comparator(); Autor, Zofia Kruczkiewicz - Programowanie obiektowe Java, Pojemniki na obiekty, część 1 12
13 public interface Set<E> extends Collection<E> Nie pozwala ma tworzenie kopii elementów public class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneable, Serializable HashSet szybkie przeszukiwanie kolekcji. HashSet przy przetwarzaniu elementów korzysta z ich metod hashcode i equals public class TreeSet<E> extends AbstractSet<E> implements SortedSet<E>, Cloneable, Serializable TreeSet można tworzyć uporządkowany ciąg elementów, ponieważ elementy są umieszczane w strukturze typu drzewo czerwono-czarne. TreeSet przy przetwarzaniu elementów korzysta z ich metody compareto. 1.3) Funkcjonalność pojemników typu Quene public interface Queue<E> extends Collection<E> { E element(); boolean offer(e o); E peek(); E poll(); E remove(); Queue Interface Structure Throws exception Returns special value Insert add(e) offer(e) Remove remove() poll() Examine element() peek() Autor, Zofia Kruczkiewicz - Programowanie obiektowe Java, Pojemniki na obiekty, część 1 13
14 2) Funkcjonalność pojemników typu Map Elementy są umieszczane w kolekcji jako pary: klucz (K) oraz wartość (V) public interface Map { //podstawowe operacje 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(); //operacje na zbiorach elementów void putall(map<? extends K,? extends V> t); void clear(); // podejście typu kolekcja public Set<K> keyset(); public Collection<V> values(); public Set<Map.Entry<K,V>> entryset(); // interfejs dla dostępu do elementów za pomocą kluczy public interface Map.Entry { K getkey(); V getvalue(); V setvalue(v value); int hashcode(); V setvalue(v value); boolean equals(object o) //opcjonalne 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(); Autor, Zofia Kruczkiewicz - Programowanie obiektowe Java, Pojemniki na obiekty, część 1 14
15 public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable HashMap implementacja oparta na na tablicy haszowej. Zapewnia stały czas wstawiania i wyszukiwania elementów w kolekcji. Podczas tworzenia kolekcji można określić efektywny czas wstawiania (load factor) i powiększania pojemności kolekcji (capacity). HasMap przy przetwarzaniu elementów korzysta z ich metod hashcode i equals. public class TreeMap<K,V> extends AbstractMap<K,V> implements SortedMap<K,V>, Cloneable, Serializable TreeMap implementacja oparta na drzewie czerwono-czarnym. Elementy mogą być zwracane w sposób uporządkowany wg ich metody compareto. Wydajność operacji pojemników wg [Thinking in Java, Second Edition Bruce Eckel] Type Get Iteration Insert Remove array na na ArrayList LinkedList Vector Type Test size Add Contains Iteration TreeSet HashSet Type Test size Put Get Iteration TreeMap HashMap Hashtable Autor, Zofia Kruczkiewicz - Programowanie obiektowe Java, Pojemniki na obiekty, część 1 15
16 Przykłady zastosowania pojemników Przykład 2 Typy pojemników import java.lang.*; import java.util.*; public class Kolekcje2 { static ArrayList <String> arraylist = new ArrayList<String>(); //domyślna pojemność 10 elementów static LinkedList <String> linkedlist = new LinkedList<String>(); static HashSet <String> hashset =new HashSet <String>(); static TreeSet <String> treeset=new TreeSet<String>(); static HashMap <String,String> hashmap=new HashMap<String,String>(); static TreeMap <String,String> treemap=new TreeMap<String,String>(); static public byte[] wypelnij(int n) { byte tablica1[]=new byte[n]; Random r=new Random(n); for (int i=0; i<tablica1.length;i++) tablica1[i]=(byte)(65+r.nextint(26)); return tablica1; Autor, Zofia Kruczkiewicz - Programowanie obiektowe Java, Pojemniki na obiekty, część 1 16
17 static String klucz2(int n) { return new String(wypelnij(n)); static public void wypelnij1(int n) { String s=new String(wypelnij(i+1)); arraylist.add(s); static public void wypelnij2(int n) { String s=new String(wypelnij(i+1)); linkedlist.add(s); static public void wypelnij3(int n) { String s=new String(wypelnij(i+1)); hashset.add(s); static public void wypelnij4(int n) { String s=new String(wypelnij(i+1)); treeset.add(s); static public void wypelnij5(int n) { String s1=new String(wypelnij(2*i+1)); String s2=new String(wypelnij(i+1)); hashmap.put(s1,s2); static public void wypelnij6(int n) { String s1=new String(wypelnij(2*i+1)); String s2=new String(wypelnij(i+1)); treemap.put(s1,s2); Autor, Zofia Kruczkiewicz - Programowanie obiektowe Java, Pojemniki na obiekty, część 1 17
18 public static void main(string args[]) { wypelnij1(10);wypelnij1(10); wypelnij2(10);wypelnij2(10); wypelnij3(10);wypelnij3(10); wypelnij4(10);wypelnij4(10); wypelnij5(10);wypelnij5(10); wypelnij6(10);wypelnij6(10); System.out.println("\nArrayList\n"+arraylist.toString()); Collections.sort(arraylist); System.out.println("\nPosortowana ArrayList\n"+arraylist.toString()); System.out.println("\nLinkedList\n"+linkedlist.toString()); Collections.sort(linkedlist); System.out.println("\nPosortowan LinkedList\n"+linkedlist.toString()); System.out.println("\nhashset\n"+hashset.toString()); System.out.println("\ntreeset\n"+treeset.toString()); System.out.println("\nhashmap\n"+hashmap.toString()); System.out.println("\ntreemap\n"+treemap.toString()); String a=klucz2(5); int b1=collections.binarysearch(arraylist,a); System.out.println("Znaleziono w posortowanej Arraylist "+a+" na pozycji "+b1); int b2=collections.binarysearch(linkedlist,a); System.out.println("Znaleziono w posortowanej LinkedList "+a+" na pozycji "+b2); Autor, Zofia Kruczkiewicz - Programowanie obiektowe Java, Pojemniki na obiekty, część 1 18
19 Przykład 3 Zbiory import java.lang.*; import java.util.*; public class Zbiory { static HashSet <String> hashset=new HashSet <String>(); static TreeSet <String> treeset=new TreeSet<String>(); static public byte[] wypelnij(int n) { byte tablica1[]=new byte[n]; Random r=new Random(n); for (int i=0; i<tablica1.length;i++) tablica1[i]=(byte)(65+r.nextint(26)); return tablica1; static public void wypelnij3(int n) { String s=new String(wypelnij(i+1)); hashset.add(s); static public void wypelnij4(int n) { String s=new String(wypelnij(2*i+1)); treeset.add(s); static <K> void roznicasymetryczna(set<k> set1, Set<K> set2) { Set<K> roznicasym = new HashSet<K>(set1); roznicasym.addall(set2); System.out.println("\nsuma zbiorow\n"+roznicasym.tostring()); Set<K> tmp = new HashSet<K>(set1); tmp.retainall(set2); System.out.println("\niloczyn zbiorow\n"+tmp.tostring()); roznicasym.removeall(tmp); System.out.println("\nroznica symetryczna\n"+roznicasym.tostring()); Autor, Zofia Kruczkiewicz - Programowanie obiektowe Java, Pojemniki na obiekty, część 1 19
20 public static void main(string args[]) { wypelnij3(5);wypelnij3(5); wypelnij4(10);wypelnij4(10); System.out.println("\nhashset\n"+hashset.toString()); System.out.println("\ntreeset\n"+treeset.toString()); roznicasymetryczna(hashset,treeset); Przykład 4 Mapy Autor, Zofia Kruczkiewicz - Programowanie obiektowe Java, Pojemniki na obiekty, część 1 20
21 import java.lang.*; import java.util.*; public class Mapy { static HashSet <String> hashset=new HashSet <String>(); static TreeSet <String> treeset=new TreeSet<String>(); static HashMap <String,String> hashmap=new HashMap<String,String>(); static TreeMap <String,String> treemap=new TreeMap<String,String>(); static public byte[] wypelnij(int n) { byte tablica1[]=new byte[n]; Random r=new Random(n); for (int i=0; i<tablica1.length;i++) tablica1[i]=(byte)(65+r.nextint(26)); return tablica1; static String klucz2(int n) { return new String(wypelnij(n)); static public void wypelnij3(int n) { String s=new String(wypelnij(i+1)); hashset.add(s); static public void wypelnij4(int n) { String s=new String(wypelnij(i+1)); treeset.add(s); static public void wypelnij5(int n) { String s1=new String(wypelnij(2*i+1)); String s2=new String(wypelnij(i+1)); hashmap.put(s1,s2); static public void wypelnij6(int n) { String s1=new String(wypelnij(2*i+1)); String s2=new String(wypelnij(i+1)); treemap.put(s1,s2); static <K, V> Map<K, V> sumamap(map<k, V>pierwsza, Map<K, V> druga) { Map<K, V> sumamap_ = new HashMap<K, V>(pierwsza); sumamap_.putall(druga); return sumamap_; static <K, V> Set<K> walidacja(map<k, V> podstawowa, Set<K> wzorzec) { Set<K> zle = new TreeSet<K>(wzorzec); Set<K> klucze = podstawowa.keyset(); If (!klucze.containsall(wzorzec)) { zle.retainall(klucze) return zle; Autor, Zofia Kruczkiewicz - Programowanie obiektowe Java, Pojemniki na obiekty, część 1 21
22 public static void main(string args[]) { wypelnij3(10);wypelnij3(10); wypelnij4(10);wypelnij4(10); wypelnij5(5);wypelnij5(5); wypelnij6(10);wypelnij6(10); System.out.println("\nhashset\n"+hashset.toString()); System.out.println("\ntreeset\n"+treeset.toString()); System.out.println("\nhashmap\n"+hashmap.toString()); System.out.println("\ntreemap\n"+treemap.toString()); String a=klucz2(5); boolean b1=hashmap.containskey(a); System.out.println(b1+", ze znaleziono w HashMap klucz "+a); boolean b2=hashmap.containsvalue(a); System.out.println(b2+", ze znaleziono w HashMap wartosc "+a); b1=treemap.containskey(a); System.out.println(b1+", ze znaleziono w TreeMap klucz "+a); b2=treemap.containsvalue(a); System.out.println(b2+", ze znaleziono w TreeMap wartosc "+a); Map <String, String> sumamap_ = sumamap(treemap,hashmap); System.out.println("\nsuma map 1\n"+sumamap_.toString()); sumamap_ = sumamap(hashmap,treemap); System.out.println("\nsuma map 2\n"+sumamap_.toString()); Set <String>klucze_walidacji=walidacja(treemap,hashset); // w wyniku walidacji zostaną podane te klucze z treemap, które wystąpiły w hashset System.out.println("\nwynik walidacji\n"+klucze_walidacji.tostring()); System.out.println("Wynik porownania zbioru kluczy w TreeMap i HashMap:" +treemap.keyset().equals(hashmap.keyset())); Autor, Zofia Kruczkiewicz - Programowanie obiektowe Java, Pojemniki na obiekty, część 1 22
23 Przykład 5 Iteratory Autor, Zofia Kruczkiewicz - Programowanie obiektowe Java, Pojemniki na obiekty, część 1 23
24 import java.lang.*; import java.util.*; public class Kolekcje3 //domyślna pojemność 10 elementów { static ArrayList <String> arraylist= new ArrayList<String>(); static LinkedList <String> linkedlist= new LinkedList<String>(); static HashSet <String> hashset=new HashSet <String>(); static TreeSet <String> treeset=new TreeSet<String>(); static HashMap <String,String> hashmap=new HashMap<String,String>(); static TreeMap <String,String> treemap=new TreeMap<String,String>(); static public byte[] wypelnij(int n) { byte tablica1[]=new byte[n]; Random r=new Random(n); for (int i=0; i<tablica1.length;i++) tablica1[i]=(byte)(65+r.nextint(26)); return tablica1; static public void wypelnij1(int n) { String s=new String(wypelnij(i+1)); arraylist.add(s); static public void wypelnij2(int n) { String s=new String(wypelnij(i+1)); linkedlist.add(s); static public void wypelnij3(int n) { String s=new String(wypelnij(i+1)); hashset.add(s); static public void wypelnij4(int n) { String s=new String(wypelnij(i+1)); treeset.add(s); static public void wypelnij5(int n) { String s1=new String(wypelnij(2*i+1)); String s2=new String(wypelnij(i+1)); hashmap.put(s1,s2); static public void wypelnij6(int n) { String s1=new String(wypelnij(2*i+1)); String s2=new String(wypelnij(i+1)); treemap.put(s1,s2); Autor, Zofia Kruczkiewicz - Programowanie obiektowe Java, Pojemniki na obiekty, część 1 24
25 static <K> void wyswietliterator(string s, Iterator <K> it) { System.out.println(s); while(it.hasnext()) System.out.print(it.next()+", "); System.out.println(); static <K> void wyswietliterator(string s, ListIterator <K> it) { System.out.println(s); while(it.hasnext()) System.out.print(it.next()+", "); System.out.println(); public static void main(string args[]) { wypelnij1(10);wypelnij1(10); wypelnij2(10);wypelnij2(10); wypelnij3(10);wypelnij3(10); wypelnij4(10);wypelnij4(10); wypelnij5(10);wypelnij5(10); wypelnij6(10);wypelnij6(10); System.out.println("\nArrayList\n"+arraylist.toString()); wyswietliterator("iterator ArrayList",arraylist.iterator()); System.out.println("\nLinkedList\n"+linkedlist.toString()); wyswietliterator("iterator LinkedList",linkedlist.iterator()); wyswietliterator("listiterator LinkedList",linkedlist.listIterator()); System.out.println("\nhashset\n"+hashset.toString()); wyswietliterator("iterator HashSet",hashset.iterator()); System.out.println("\ntreeset\n"+treeset.toString()); wyswietliterator("iterator TreeSet",treeset.iterator()); System.out.println("\nhashmap\n"+hashmap.toString()); wyswietliterator("iterator HashMap",hashmap.entrySet().iterator()); System.out.println("\ntreemap\n"+treemap.toString()); wyswietliterator("iterator TreeMap",treemap.entrySet().iterator()); Autor, Zofia Kruczkiewicz - Programowanie obiektowe Java, Pojemniki na obiekty, część 1 25
Programowanie obiektowe
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(),
Comparable<Klasa_uzytkownika>
Przechowywanie obiektów w pamięci programu Część II (obiekty typów definiowanych przez użytkownika) Obiekty typów definiowanych przez użytkownika muszą być przystosowane do przechowywania w pojemnikach
Programowanie w języku Java. Kolekcje
Programowanie w języku Java Kolekcje Definicja Kolekcja to obiekt, który grupuje elementy danych (inne obiekty) i pozwala traktować je jak jeden zestaw danych, umożliwiając jednocześnie wykonywanie na
Programowanie i projektowanie obiektowe
Programowanie i projektowanie obiektowe Kolekcje Paweł Daniluk Wydział Fizyki Jesień 2011 P. Daniluk (Wydział Fizyki) PO w. X Jesień 2011 1 / 24 Kolekcje Interfejsy Implementacje Algorytmy Marketspeak
Języki i metody programowania Java INF302W Wykład 3 (część 2)
Języki i metody programowania Java INF302W Wykład 3 (część 2) Autor Dr inż. Zofia Kruczkiewicz Autor, Zofia Kruczkiewicz Języki i metody programowania Java, wykład 3, część 2 1 STRUKTURA WYKŁADU 1. Systemowe
Realizacja ekstensji klasy. Paulina Strzelecka, Tomasz Roszkowski
Realizacja ekstensji klasy Paulina Strzelecka, Tomasz Roszkowski Przechowywanie obiektów (odwolañ do obiektów) w Javie typ wbudowany - tablica zbiór klas kontenerowych Paulina Strzelecka, Tomasz Roszkowski
Java klasy kolekcji dr inż. Paweł Skrzyński, Java - kolekcje, 2010/2011
Java klasy kolekcji Agenda Wprowadzenie Podstawowe interfejsy w Java Collection Framework Implementacje Algorytmy Wskazówki implementacyjne Interoperabilność Pytania 2 Wprowadzenie Kolekcja: obiekt grupujący
KOLEKCJE JAVY API: NAJPROSTSZE PODSTAWY
KOLEKCJE JAVY API: NAJPROSTSZE PODSTAWY I. TABLICE, CZYLI PODSTAWOWY RODZAJ KOLEKCJI: ARRAYS Wady i zalety 1. (Na rozgrzewkę) Zdefiniuj dwie klasy w programie (mogą być nawet puste na nasze potrzeby).
Kolekcje. Na podstawie:
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
Kolekcja (kontener) to po prostu obiekt, który grupuje wiele elementów w jeden twór.
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
Kolekcje mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011
Kolekcje mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011 Kolekcja obiekt, który grupuje inne obiekty, traktując je jako jeden zestaw danych i pozwalający na wykonywanie operacji
Programowanie Obiektowe (Java)
1. Wprowadzenie do kontenerów Wykład ósmy Kontenery s ą obiektami, które potrafi ą przechowywa ć inne obiekty w określony sposób. O kontenerach można myśle ć jako o gotowych do użycia strukturach danych.
Języki i Techniki Programowania II. Wykład 4. Kolekcje
Języki i Techniki Programowania II Wykład 4 Kolekcje Klasy Uogólnione (Generics) List l = new ArrayList(); l.add(new Cat());//OK l.add(new Dog());//Błąd Klasy Uogólnione (Generics) Type erasure
java.util.* :Kolekcje Tomasz Borzyszkowski
java.util.* :Kolekcje Tomasz Borzyszkowski Wstęp Kolekcje w Java dają programiście pewien standardowy sposób radzenia sobie z przetwarzaniem grup obiektów. Implementacja kolekcji w Java składa się z następujących
Kolekcje - pakiet Java Collections Framework
Programowanie obiektowe Kolekcje - pakiet Java Collections Framework Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Definicja kolekcji
Język JAVA podstawy. Wykład 4, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna
Język JAVA podstawy Wykład 4, część 3 1 Język JAVA podstawy Plan wykładu: 1. Podstawy modelowania obiektowego 2. Konstruktory 3. Dziedziczenie, związki pomiędzy klasami, UML 4. Polimorfizm 5. Klasy abstrakcyjne
Kolekcje - pakiet Java Collections Framework
Programowanie obiektowe Kolekcje - pakiet Java Collections Framework Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Programowanie obiektowe
Podstawy otwartych języków programowania Przechowywanie danych
Podstawy otwartych języków programowania Przechowywanie danych Wiktor Wandachowicz Sposoby przechowywania danych Typy podstawowe Pojedyncze obiekty Tablice obiektów i tablice typów podstawowych jednowymiarowe
Kurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016
Wykład 9 28 kwiecień 2016 Java Collections Framework (w C++ Standard Template Library) Kolekcja (kontener) Obiekt grupujacy/przechowuj acy jakieś elementy (obiekty lub wartości). Przykładami kolekcji sa
Kolekcje obiektów. Wyj tki.
Kolekcje obiektów. Wyj tki. Robert A. Kªopotek r.klopotek@uksw.edu.pl Wydziaª Matematyczno-Przyrodniczy. Szkoªa Nauk cisªych, UKSW 30.03.2017 Kolekcje obiektów Kolekcje obiektów (Java Collections) sªu»
Kurs programowania. Wykład 9. Wojciech Macyna
Wykład 9 Java Collections Framework (w C++ Standard Template Library) Kolekcja (kontener) Obiekt grupujacy/przechowuj acy jakieś elementy (obiekty lub wartości). Przykładami kolekcji sa zbiór, lista czy
Kolekcje. object that groups multiple elements into a single unit
Kolekcje object that groups multiple elements into a single unit W wielu programach deklaracje typu: MyObject myreference; są uprawnione, jednak często zwłaszcza przy bardziej skomplikowanych programach
Java SE Laboratorium nr 7. Temat: Kolekcje
Java SE Laboratorium nr 7 Temat: Kolekcje 1 1. Definicja i idea Często w programach zachodzi potrzeba przechowywania w pamięci nieznanej z góry liczby elementów. Możliwość taką dostarczają tzw. kontenery
Java niezbędnik programisty spotkanie nr 8. Kolekcje c.d.
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
jlabel: void setalignment(label.center/left/right) - wyrównanie String gettext() pobiera aktualny tekst napisu void settext(string text) ustawia
GUI / Kolekcje jlabel: void setalignment(label.center/left/right) - wyrównanie String gettext() pobiera aktualny tekst napisu void settext(string text) ustawia tekst napisu void setdisplayedmnemonic(char
Dawid Gierszewski Adam Hanasko
Dawid Gierszewski Adam Hanasko Chcemy stworzyć klasę w której możemy przechowywać dwie zmienne dowolnych typów Tworzymy tyle różnych klas ile potrzeba: Class ParaInt{ int pierwszy; Int drugi; Class ParaButow{
Java Collections Framework
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
Wydział Fizyki i Informatyki Stosowanej, Uniwersytetu Łódzkiego Łódź. Java podstawy języka, wykład 4 1
Wydział Fizyki i Informatyki Stosowanej, Uniwersytetu Łódzkiego 03.12.2010 Łódź Java podstawy języka, wykład 4 1 Stosując blokady (synchronizację) Można doprowadzić do zablokowania wszystkich wątków Zakleszczenie
Programowanie w Javie- wykład 11 Kolekcje (listy)
1 Programowanie w Javie- wykład 11 Kolekcje (listy) Treści prezentowane w wykładzie zostały oparte o: Barteczko, JAVA Programowanie praktyczne od podstaw, PWN, 2014 Barteczko, JAVA Uniwersalne techniki
WYJĄTKI, KOLEKCJE ZAGADNIENIA: 1. Wyjątki, 2. Kolekcje, vector, hashtable, properties, Klasy Arrays i Collections.
WYJĄTKI, KOLEKCJE ZAGADNIENIA: 1. Wyjątki, 2. Kolekcje, vector, hashtable, properties, Klasy Arrays i Collections. http://th-www.if.uj.edu.pl/zfs/ciesla/ JĘZYK JAVA, FAIS UJ 2016/2017 1 WYJĄTKI Błędy wykonania
Platformy Programistyczne Podstawy języka Java
Platformy Programistyczne Podstawy języka Java Agata Migalska 6 maja 2014 Plan wykładu 1 Sztuka wysławiania się w języku Java 2 Cały świat jest obiektem 3 Kolekcje 4 Zmienne i metody statyczne 5 Słowo
Programowanie obiektowe
Programowanie obiektowe Wykład 5 Marcin Młotkowski 23 marca 2017 Plan wykładu 1 2 3 4 5 Marcin Młotkowski Programowanie obiektowe 2 / 50 Historia Początkowe założenia Projekt OAK Sterowanie urządzeniami
Języki i metody programowania Java Lab4 podejście obiektowe, zastosowanie pojemników
Języki i metody programowania Java Lab4 podejście obiektowe, zastosowanie pojemników https://docs.oracle.com/javase/tutorial/ http://zofia.kruczkiewicz.staff.iiar.pwr.wroc.pl/wyklady/pojava/javazk4_2.pdf
Języki i metody programowania Java INF302W Wykład 2 (część 1)
Języki i metody programowania Java INF302W Wykład 2 (część 1) Autor Dr inż. Zofia Kruczkiewicz Autor: Zofia Kruczkiewicz, Języki i metody programowania Java, wykład 2, część 1 1 Struktura wykładu 1. Identyfikacja
Wykład 4. Klasa List Kolejki Stosy Słowniki
Wykład 4 Klasa List Kolejki Stosy Słowniki Klasa List Poważną niedogodnością tablic jako kolekcji danych jest fakt, że muszą one mieć stały rozmiar. Programista musi wiedzieć z góry ile miejsca powinien
Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016
Wykład 2 17 marca 2016 Dziedziczenie Klasy bazowe i potomne Dziedziczenie jest łatwym sposobem rozwijania oprogramowania. Majac klasę bazowa możemy ja uszczegółowić (dodać nowe pola i metody) nie przepisujac
Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016
Wykład 1 3 marca 2016 Słowa kluczowe języka Java abstract, break, case, catch, class, const, continue, default, do, else, enum, extends, final, finally, for, goto, if, implements, import, instanceof, interface,
Kolekcje w języku Java
Kolekcje w języku Java Prowadzący: Bartosz Walter Biblioteka Java Collections 1 Plan wykładu Historia Java Collections Podstawowe interfejsy i ich odpowiedzialność Iteratory Klasy pomocnicze i ich funkcjonalność
Java: kilka brakujących szczegółów i uniwersalna nadklasa Object
Java: kilka brakujących szczegółów i uniwersalna nadklasa Object Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU Konstrukcja obiektów Niszczenie obiektów i zwalnianie zasobów
Programowanie w Javie - wykład 13 Kolekcje c.d. ( mapy)
1 Programowanie w Javie - wykład 13 Kolekcje c.d. ( mapy) Treści prezentowane w wykładzie zostały oparte o: Barteczko, JAVA Programowanie praktyczne od podstaw, PWN, 2014 http://docs.oracle.com/javase/8/docs/
Kurs programowania. Wykład 13. Wojciech Macyna. 14 czerwiec 2017
Wykład 13 14 czerwiec 2017 Java vs cpp - podobieństwa Podobny sposób definiowania klas. Występowanie typów podstawowych: boolean, char, byte, short, int, long, float, double. Podobna zasada definiowania
Tworzenie aplikacji w języku Java
Tworzenie aplikacji w języku Java Wykład 2 Java Collections Framework Piotr Czapiewski Wydział Informatyki ZUT 2 października 2009 Piotr Czapiewski (Wydział Informatyki ZUT) Tworzenie aplikacji w języku
Wykład 2 Wybrane konstrukcje obiektowych języków programowania (1)
MAS dr. Inż. Mariusz Trzaska Wykład 2 Wybrane konstrukcje obiektowych języków programowania (1) Zagadnienia o Podstawy o Kontrolowanie sterowania o Klasy o Interfejsy o Obsługa błędów o Pojemniki o System
WSNHiD, Programowanie 2 Lab. 2 Język Java struktura programu, dziedziczenie, abstrakcja, polimorfizm, interfejsy
WSNHiD, Programowanie 2 Lab. 2 Język Java struktura programu, dziedziczenie, abstrakcja, polimorfizm, interfejsy Pojęcie klasy Program napisany w języku Java składa się ze zbioru klas. Każda klasa zawiera
JAVA W SUPER EXPRESOWEJ PIGUŁCE
JAVA W SUPER EXPRESOWEJ PIGUŁCE Obiekt Obiekty programowe to zbiór własności i zachowań (zmiennych i metod). Podobnie jak w świecie rzeczywistym obiekty posiadają swój stan i zachowanie. Komunikat Wszystkie
import java.util.*; public class ListExample { public static void main(string args[]) { List<String> lista1= new ArrayList<String> ();
collection Zadanie.1 Napisać program, który: a) tworzy listę (implementacja tablicy ArrayList), dodając po jednym elemencie (korzystając z operacji podstawowej add). Następnie wypisuje całą listę, drugi
Lista, Stos, Kolejka, Tablica Asocjacyjna
Lista, Stos, Kolejka, Tablica Asocjacyjna Listy Lista zbiór elementów tego samego typu może dynamicznie zmieniać rozmiar, pozwala na dostęp do poszczególnych elementów Typowo dwie implementacje: tablicowa,
Podejście obiektowe. Tablice obiektów Przykład 1 metody i atrybuty statyczne oraz niestatyczne
Podejście obiektowe. Tablice obiektów Przykład 1 metody i atrybuty statyczne oraz niestatyczne import javax.swing.*; import java.util.*; public class Napis4 { String wynik = ""; static int ile_obiektow
Programowanie obiektowe
Programowanie obiektowe Wykład 13: RTTI 6/2/2013 S.Deniziak: Programowanie obiektowe - Java 1 Po co informacja o typie obiektu? Polimorfizm Kolekcje Deserializacja 6/2/2013 S.Deniziak: Programowanie obiektowe
Programowanie obiektowe
Programowanie obiektowe Wykład 2: Wstęp do języka Java 3/4/2013 S.Deniziak: Programowanie obiektowe - Java 1 Cechy języka Java Wszystko jest obiektem Nie ma zmiennych globalnych Nie ma funkcji globalnych
Zofia Kruczkiewicz, Programowanie obiektowe - java, wykład 2 1
PODSTAWOWE ELEMENTY JĘZYKA JAVA WYRAŻENIA, OPERATORY, INSTRUKCJE 1. Operatory arytmetyczne +, -, /,*, % Przykład 1 programu z interfejsem konsolowym public class Lab2_1 // Tworzy generator liczb losowych,
Przykład -
Polimorfizm Przykład - http://rpodhajny.wordpress.com klasa bazowa A, oraz klasy pochodne B1, B2,, Bn (dziedziczące po klasie bazowej). niektóre klasy pochodne chcą mieć możliwość skorzystania z metody
TYPY GENERYCZNE (GENERICS)
TYPY GENERYCZNE (GENERICS) ZAGADNIENIA: wprowadzenie, konwencje, metody, typy surowe parametry ograniczone podtypy, dziedziczenie, symbole wieloznaczne, ograniczenia. MATERIAŁY: http://docs.oracle.com/javase/tutorial/java/generics/
Programowanie sieciowe
Programowanie sieciowe mgr Marcin Raniszewski mgr inŝ. Paweł Kośla Łódź, 2009 Wykład 6: Wielowątkowość, operacje na plikach, kolekcje 1 Plan wykładu Wątki (klasa Thread i interfejs Runnable) Synchronizacja
dziedziczenie - po nazwie klasy wystąpią słowa: extends nazwa_superklasy
PODSTAWOWE ELEMENTY JĘZYKA JAVA TYPY DANYCH, OPERATORY I INSTRUKCJE 1. Definicja klasy, dziedziczenie, implementowanie metod interfejsów class nazwa_klasy //ciało klasy Klasa: przed słowem class moŝe wystąpić
Programowanie obiektowe i język Java
Programowanie obiektowe i język Java Tomasz Głowacki Zajęcia finansowane z projektu "Rozwój i doskonalenie kształcenia na Politechnice Poznańskiej w zakresie technologii informatycznych i ich zastosowań
Java Programowanie Obiektowe Ćwiczenie 1- wprowadzenie
Java Programowanie Obiektowe Ćwiczenie 1- wprowadzenie 1. Cel ćwiczenia i zakres Poznanie środowiska IntelliJ IDEA Maven narzędzie do budowanie projektów typy podstawowe i tablice, instrukcje warunkowe,
dr inż. Piotr Czapiewski Tworzenie aplikacji w języku Java Laboratorium 1
Ćwiczenie 1 Uruchamianie programu w Netbeans Uruchom środowisko Netbeans. Stwórz nowy projekt typu Java Application. Nadaj projektowi nazwę HelloWorld (Project Name), zwróć uwagę na folder, w którym zostanie
Aplikacje Internetowe. Najprostsza aplikacja. Komponenty Javy. Podstawy języka Java
Aplikacje Internetowe Podstawy języka Java Najprostsza aplikacja class Hello { public static void main(string[] args) { System.out.println("Hello World!"); Komponenty Javy JRE Java Runtime Environment
Programowanie i projektowanie obiektowe
Programowanie i projektowanie obiektowe Klasy i obiekty Paweł Daniluk Wydział Fizyki Jesień 2011 P. Daniluk (Wydział Fizyki) PO w. V Jesień 2011 1 / 13 Typy danych (w Javie) Typy pierwotne typ wartości
Instrukcja 2 Laboratorium z Podstaw Inżynierii Oprogramowania
Instrukcja 2 Laboratorium z Podstaw Inżynierii Oprogramowania Opis biznesowy świata rzeczywistego Wymagania funkcjonalne i niefunkcjonalne aplikacji Diagram przypadków życia Diagramy klas i sekwencji:
Podejście obiektowe. Tablice (1) obiektów
1. Tablice Tablica w Javie jest obiektem. Podejście obiektowe. Tablice (1) obiektów Deklarowanie tablicy String [] nazwy; //równowaŝne deklaracje zmiennej tablicowej String nazwy []; int liczby[]; //zamienna
Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]
1. Typy. Java jest językiem programowania z silnym systemem kontroli typów. To oznacza, że każda zmienna, atrybut czy parametr ma zadeklarowany typ. Kompilator wylicza typy wszystkich wyrażeń w programie
2. Klasy cz. 2 - Konstruktor kopiujący. Pola tworzone statycznie i dynamicznie - Funkcje zaprzyjaźnione - Składowe statyczne
Tematyka wykładów 1. Wprowadzenie. Klasy cz. 1 - Język C++. Programowanie obiektowe - Klasy i obiekty - Budowa i deklaracja klasy. Prawa dostępu - Pola i funkcje składowe - Konstruktor i destruktor - Tworzenie
Aplikacje w Javie wykład 7 Kolekcje (listy, zbiory)
Aplikacje w Javie wykład 7 1 Kolekcje (listy, zbiory) Treści prezentowane w wykładzie zostały oparte o: Barteczko, JAVA Programowanie praktyczne od podstaw, PWN, 2014 http://docs.oracle.com/javase/8/docs/
Java: interfejsy i klasy wewnętrzne
Java: interfejsy i klasy wewnętrzne Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak 1 INTERFEJSY Interfejs to opis co klasa implementująca dany interfejs powinna robić, ale bez określania
Kiedy potrzebne. Struktura (rekord) Struktura w języku C# Tablice struktur. struktura, kolekcja
1 struktura, kolekcja Kiedy potrzebne Duża liczba danych takiego samego typu tablice a jak nieznana liczba elementów? dane zawierające wartości różnego typu (osoba: pesel, nazwisko, rok urodzenia, pracuje/niepracuje,
Języki i metodyka programowania. Język C# pętle, sterowanie, wyjątki
Język C# pętle, sterowanie, wyjątki Język C# pętle Pętle: while ( ) do { while ( ); for ( ; ; ) foreach ( in
Języki i metody programowania Java Obsługa zdarzeń - przykłady
Języki i metody programowania Java Obsługa zdarzeń - przykłady wg https://docs.oracle.com/javase/tutorial/uiswing/components/ind ex.html Autor Dr inż. Zofia Kruczkiewicz Rodzaje słuchaczy zdarzeń Wydarzenia
Wykład 6: Dziedziczenie
Wykład 6: Dziedziczenie Dziedziczenie Jeden z filarów obiektowości. Budowa jednej klasy na bazie drugiej, przez dodawanie/przesłanianie jej składowych: nad-klasa klasa bazowa pod-klasa klasa pochodna od
Kolekcje w Javie cz. 1
Kolekcje w Javie cz. 1 Programowanie obiektowe Jacek Sroka na podstawie materiałów Janusza Jabłonowskiego 8 kwietnia 2013 Po co są kolekcje? Po co są kolekcje? A po co są programy? Żeby manipulować danymi.
Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej
Programowanie obiektowe Interfejsy Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Interfejsy Autor: Paweł Rogaliński Instytut Informatyki,
GUI - projektowanie interfejsów cz. II
Katedra Inżynierii Wiedzy, Uniwersytet Ekonomiczny w Katowicach Wykład 2 Java Foundations Classes przyciski; pola tekstowe; panele; okna dialogowe; biblioteka Swing. Metodyka (paradygmat) programowania
Laboratorium z przedmiotu: Inżynieria Oprogramowania INEK Instrukcja 7
Instrukcja 7 Laboratoria 9, 10 Opracowanie diagramów sekwencji dla wybranych przypadków użycia reprezentujących usługi oprogramowania wynikających również z wykonanych diagramów czynności; definicja operacji
1. Co można powiedzieć o poniższym kodzie (zakładając, że zaimportowano wszystkie niezbędne klasy)?
1. Co można powiedzieć o poniższym kodzie (zakładając, że zaimportowano wszystkie niezbędne klasy)? public static void test1() { Object[] o = new Object[] { "1", "2", "3" ; List l = new ArrayList(Arrays.asList(o));
Laboratorium z przedmiotu: Inżynieria Oprogramowania INEK Instrukcja 6
Instrukcja 6 Laboratorium 8 Opracowanie diagramów sekwencji dla wybranych przypadków użycia reprezentujących usługi oprogramowania wynikających również z wykonanych diagramów czynności; definicja operacji
Programowanie obiektowe
Programowanie obiektowe II. Dziedziczenie Małgorzata Prolejko OBI JA16Z03 Plan Klasy bazowe i pochodne. Hierarchia dziedziczenia. Polimorfizm. Wiązanie dynamiczne. Ograniczenie dziedziczenia, klasy i metody
Programowanie w Javie- wykład 12 Kolekcje (zbiory)
1 Programowanie w Javie- wykład 12 Kolekcje (zbiory) Treści prezentowane w wykładzie zostały oparte o: Barteczko, JAVA Programowanie praktyczne od podstaw, PWN, 2014 Barteczko, JAVA Uniwersalne techniki
Wywoływanie metod zdalnych
Wywoływanie metod zdalnych model systemu Wywoływanie metod zdalnych aplikacja kliencka interfejs obiekt serwer Podejście obiektowe do budowy systemów rozproszonych proxy szkielet sieć Istota podejścia
Programowanie obiektowe
Programowanie obiektowe Wykład 7: Typy uogólnione. Stringi. 4/21/2013 S.Deniziak: Programowanie obiektowe - Java 1 Jak operować na danych różnych typów? Wymagana zgodność typów Rzutowanie w górę Tylko
MAS dr. Inż. Mariusz Trzaska. Wykład 3. Wybrane konstrukcje obiektowych języków programowania (2)
MAS dr. Inż. Mariusz Trzaska Wykład 3 Wybrane konstrukcje obiektowych języków programowania (2) Kontynuacja poprzedniego wykładu Wykorzystano materiały z Thinking in Java (3rd edition) autorstwa Bruce
Przykład użycia iteratora dla zbioru. Który z poniższych przykładów jest poprawny i dlaczego?
Programowanie współbieżne Laboratorium nr 13 Kolekcje a współbieżność "Iteratory szybko zgłaszające problem [1] nie zostały zaprojektowane do zapewniania poprawności w każdej sytuacji - mają za zadanie
Programowanie urządzeń mobilnych. dr inż. Andrzej Grosser na podstawie wykładu dr inż. Juliusza Mikody
Programowanie urządzeń mobilnych dr inż. Andrzej Grosser na podstawie wykładu dr inż. Juliusza Mikody W bloku inicjalizacji nie można wywołać konstruktora klasy nadrzędnej (poprzez super). class Klasa{
API STREAM WYRAŻENIA LAMBDA
Wykorzystano fragmenty wykładów M. Piotrowskiego i M. Wójcika KOLEKCJE API STREAM WYRAŻENIA LAMBDA Waldemar Korłub Platformy Technologiczne KASK ETI Politechnika Gdańska 2 Kolekcje Kolekcje 3 Kolekcja
Tworzenie aplikacji w języku Java
Tworzenie aplikacji w języku Java Wykład 1 Piotr Czapiewski Wydział Informatyki ZUT 2 października 2009 Piotr Czapiewski (Wydział Informatyki ZUT) Tworzenie aplikacji w języku Java 2 października 2009
Systemy Rozproszone - Ćwiczenie 6
Systemy Rozproszone - Ćwiczenie 6 1 Obiekty zdalne Celem ćwiczenia jest stworzenie obiektu zdalnego świadczącego prostą usługę nazewniczą. Nazwy i odpowiadające im punkty końcowe będą przechowywane przez
Tablice i łańcuchy znakowe jako obiektowe typy danych. dr Jarosław Skaruz
Tablice i łańcuchy znakowe jako obiektowe typy danych dr Jarosław Skaruz http://jareks.ii.uph.edu.pl jaroslaw@skaruz.com O czym będzie? Klasy String, StringBuffer, StringBuilder Tablice jednowymiarowe
Programowanie i struktury danych
Programowanie i struktury danych 1 / 30 STL Standard Template Library, STL (ang. = Standardowa Biblioteka Wzorców) biblioteka C++ zawierająca szablony (wzorce), które umożliwiają wielokrotne użycie. Główne
STRUMIENIE DANYCH, SERIALIZACJA OBIEKTÓW
STRUMIENIE DANYCH, SERIALIZACJA OBIEKTÓW 1. Procedura korzystania ze strumieni danych Aby utworzyć plik: 1) Należy utworzyć obiekt (np. typu FileOutputStream), powiązany ze plikiem danych binarnych (np.
Dokumentacja do API Javy.
Dokumentacja do API Javy http://java.sun.com/j2se/1.5.0/docs/api/ Klasy i obiekty Klasa jest to struktura zawierająca dane (pola), oraz funkcje operujące na tych danych (metody). Klasa jest rodzajem szablonu
Wykład 7: Pakiety i Interfejsy
Wykład 7: Pakiety i Interfejsy Plik Źródłowy w Javie Składa się z: instrukcji pakietu (pojedyncza, opcjonalna) instrukcji importujących (wielokrotne, opcjonalne) deklaracji klasy publicznej (pojedyncza,
Wątki. Definiowanie wątków jako klas potomnych Thread. Nadpisanie metody run().
Wątki Streszczenie Celem wykładu jest wprowadzenie do obsługi wątków w Javie. Czas wykładu 45 minut. Definiowanie wątków jako klas potomnych Thread Nadpisanie metody run(). class Watek extends Thread public
Programowanie obiektowe
Programowanie obiektowe Wykład 4 Marcin Młotkowski 15 marca 2018 Plan wykładu 1 2 3 Klasa podstawowa Własne kolekcje Obiekty i wartości Marcin Młotkowski Programowanie obiektowe 141 / 224 Z czego składa
Języki i metody programowania Java. Wykład 2 (część 2)
Języki i metody programowania Java INF302W Wykład 2 (część 2) Autor Dr inż. Zofia Kruczkiewicz 1 Struktura wykładu 1. Identyfikacja danych reprezentowanych przez klasy podczas opracowania koncepcji prostego
Programowanie w Internecie. Java
Programowanie w Internecie Java Autor: dr inż. Zofia Kruczkiewicz Literatura: L. Lemay, R. Cadenhead P. Naughton Krzysztof Barteczko Boone Barry Java 2 dla każdego Podręcznik Języka Programowania Java
Metody getter https://www.python-course.eu/python3_object_oriented_programming.php 0_class http://interactivepython.org/runestone/static/pythonds/index.html https://www.cs.auckland.ac.nz/compsci105s1c/lectures/
Wykład 3 Składnia języka C# (cz. 2)
Wizualne systemy programowania Wykład 3 Składnia języka C# (cz. 2) 1 dr Artur Bartoszewski -Wizualne systemy programowania, sem. III- WYKŁAD Wizualne systemy programowania Metody 2 Metody W C# nie jest
Pętle while, for, do while, instrukcje break, continue, switch 1. Pętle
Pętle while, for, while, instrukcje break, continue, switch 1. Pętle Przykład 1 - Pętla while public class lab4_3 public static void main(string[] args) char ch = 'a'; String s, wynik=""; while ( ch!=
Kurs programowania. Wykład 3. Wojciech Macyna. 22 marca 2019
Wykład 3 22 marca 2019 Klasy wewnętrzne Klasa wewnętrzna class A {... class B {... }... } Klasa B jest klasa wewnętrzna w klasie A. Klasa A jest klasa otaczajac a klasy B. Klasy wewnętrzne Właściwości
Dziedziczenie. dr Jarosław Skaruz
Dziedziczenie dr Jarosław Skaruz http://jareks.ii.uph.edu.pl jaroslaw@skaruz.com Dziedziczenie specjalizacja Dziedziczenie generalizacja Generalizacja-specjalizacja jest takim związkiem pomiędzy klasami,