- Stahuj zápisky z přednášek a ostatní studijní materiály
- Zapisuj si jen kvalitní vyučující (obsáhlá databáze referencí)
- Nastav si své předměty a buď stále v obraze
- Zapoj se svojí aktivitou do soutěže o ceny
- Založ si svůj profil, aby tě tví spolužáci mohli najít
- Najdi své přátele podle místa kde bydlíš nebo školy kterou studuješ
- Diskutuj ve skupinách o tématech, které tě zajímají
Studijní materiály
Zjednodušená ukázka:
Stáhnout celý tento materiálvání Složené přiřazovací operátory = += -= = /= = = >>>= &= ^= |=
jsou zkratky zápisu, např. pro int resp. String s lze napsat výraz:
i += 2 místo i = i + 2 resp. s += “XYZ” místo s = s + “XYZ”;
Složené přiřazení udělá automatické přetypování.
Kompilátor nepřipustí i = i + 2.9, kdežto i += 2.9 je jako i += 2.
Přiřazovací operátory jsou zprava asociativní, tedy výraz
a = b = c je ekvivalentní a = ( b = c )
Na levé straně přiřazovacího operátoru musí být proměnná.
Výsledkem přiřazení je hodnota proměnné po provedeném přiřazení a proto je následující příklad chybný:
double d;
int i = d = 10; // Error: possible loss of precision: double, required int Ternární podmíněný výraz Operátor ? : vrací hodnotu jednoho nebo druhého výrazu podle hodnoty boolského výrazu:
int abs(int i) { return i >= 0 ? i : - i; }
Podmíněný operátor je zprava asociativní, takže
a ? b : c ? d : e ? f : g
znamená toto:
a ? b : (c ? d : (e ? f : g))
První operand musí být typu boolean.
Druhý a třetí operand musejí být kompatibilního typu.
Výsledek zkonvertován na "obecnější" z obou typů:
double d;
boolean zaokrouhlit;
…
return zaokrouhlit ? Math.rint(d) : d;
// vraci hodnotu typu double Komparační operátory Výsledkem porovnání je logická hodnota ( true, false )
Porovnání primitivních typů
== != rovno, nerovno
> >= větší než, větší nebo rovno
< c ) - odstraní všechny patřící do c
boolean retainAll( Collection c ) - odstraní všechny mimo patřící do c
void clear( ) – vyloučení všech prvků Collection Třída AbstractCollection implements Collection, abstraktními zůstávají pouze metody iterator( ) a size( ).
Interfejs Iterator slouží k postupnému jednosměrnému výpisu sbírky v pořadí v závislosti na jejím typu.
Interfejs ListIterator extends Iterator, navíc má metody pro prohlížení oběma směry, získávání indexů a vkládání prvků.
Interfejs RandomAccess je pouhý marker. Interfejs List extends Collection vyžaduje indexovaný přístup k prvkům sbírky.
void add ( E element )
boolean addAll ( Collection < ? extends E > c )
boolean addAll ( int index, Collection < ? extends E > c )
boolean equals ( Object o ) – porovnání seznamů
E get ( int index )
E set ( int index, E element )
E remove ( int index )
int indexOf ( Object o ) - hledání zepředu
int lastIndexOf ( Object o ) - hledání zezadu
ListIterator listIterator ( )
ListIterator listIterator ( int index )
List subList ( int fromIndex, int toIndex ) - pohled Třída AbstractList extends AbstractCollection a implements List.
Přidává jen metodu protected void removeRange( int, int ) a abstraktní
má jen metody get( int ) a size( ).
AbstractList sleduje také modifikace a komodifikace.
Má tři přímé potomky:
AbstractSequentialList - polotovar pro sekvenční přístup s abstraktními metodami listIterator( int ) a size( ).
ArrayList - nesynchronizovaná obdoba Vectoru.
Vector je stará, synchronizovaná třída - od verze 1.2 redefinovaná. Některé původní metody mají nově, systematičtěji nazvané ekvivalenty, např.: elementAt( int ) má nový ekvivalent get( int ).
Radno používat ty, které jsou zavedené v příslušných interfejsech.
Při probírce lépe použít Iterator iterator( ) než Enumeration elements( ). ArrayList a LinkedList Třída ArrayList uchovává reference objektů v poli.
Operace size, isEmpty, get, set, add, iterator, a listIterator probíhají v konstantním čase, ostatní v lineárním. Konstruktor a dvě metody nastavují kapacitu tj. velikost pole a tím ovlivňují nárok na paměť i četnost a dobu relokací. Metoda ensureCapacity( ) realokuje pole o polovinu větší, trimToSize( ) redukuje rozsah na stávající velikost.
Třída LinkedList implements Queue, Deque
Kolekce objektů je realizována technikou obousměrného spojového seznamu ve kterém se postupně hledá pomocí ListIteratoru. Příslušné operace mají tedy lineární časovou složitost.
Pro synchronizaci je třeba zapouzdřit takto:
List list = Collections.synchronizedList( new ArrayList( ) );
List list = Collections.synchronizedList( new LinkedList( ) );
Třída Stack extends Vector Zásobník přidává metody:
E push ( E item ) - vloží prvek na vrchol.
E pop ( ) - odebere prvek z vrcholu.
E peek ( ) - vrátí prvek z vrcholu, ale neodebere.
boolean empty ( )
int search ( Object x ) - pozice objektu od vrcholu počítaná od 1
Tato stará, synchronizovaná třída je užitečná - ač nepatří do JCF a tedy
její vlastní metody nelze využít interfejsem List.
Od verze 1.6 se doporučuje používat třídy splňující interfejs Deque,
tj.: ArrayDeque, LinkedList, LinkedBlockingDeque.
Interfejsy Set, SortedSet, NavigableSet Set extends Collection
V množině nesmějí být duplikované prvky ( podle equals() ) a nanejvýš jedna reference null. Zvláštní pozornost zasluhuje případ jsou-li prvky obsahově proměnné. Tento interfejs nepřidává další metody.
SortedSet extends Set a přidává metody:
Comparator
Vloženo: 12.06.2009
Velikost: 736,85 kB
Komentáře
Tento materiál neobsahuje žádné komentáře.
Mohlo by tě zajímat:
Skupina předmětu X36PJV - Programování v jazyku Java
Reference vyučujících předmětu X36PJV - Programování v jazyku Java
Podobné materiály
- 01M4 - Matematika 4 - Přednášky Prucha ReseniII
- 01M4 - Matematika 4 - Přednášky Prucha ReseniIII
- X01ALG - Úvod do algebry - Přednášky Horcik
- X01MA1 - Matematika 1 - Přednášky Tkadlec
- X16EKO - Ekonomika - Přednášky ekonomika
- X31EO1 - Elektrické obvody 1 - Přednášky EO1
- X31EO2 - Elektrické obvody 2 - Přednášky (2)
- X31EO2 - Elektrické obvody 2 - Přednášky
- X34ELE - Elektronika - Přednášky
- X36ALG - Algoritmizace - Přednášky algoritmizace
- Y36PJV - Programování v jazyku Java - Přednášky
- X02FY1 - Fyzika 1 - Přednášky
- X17TEP - Teorie elektromagnetického pole - prednasky
- 34EL - Elektronika - prednasky
- 12TD - Technická dokumentace - prednasky
- X12UEM - Úvod do elektrotechnických materiálů - prednasky od slova do slova
- Y36OMO - Objektové modelování - přednášky
Copyright 2025 unium.cz


