Containere din java

Containere din Java.
Există două tipuri (interfețe):
Colectia - element container
Hartă - valoarea cheii
Colectia de la origini (interfețe):
Listă - o listă de
Set - multe
Harta se realizează prin:
HashMap - tabel Hash
TreeMap - este SortedMap (interfață), care este toate elementele sunt sortate (arbori-negru rosu)
comunicate de listă prin:
ArrayList - o listă bazată pe matrice (Vector)
LinkedList - descendent AbstractSequentialList - două fețe ale unei liste legate, ea razlizuyutsya, de asemenea, structura Stak, coadă, DEQ
Setul este realizat prin:
HashSet - trunchiată multe
Un TreeSet - este un SortedSet (interfata) - un set sortat (arbore rosu-negru)
-> -> [AbstractList] -> [AbstractSequentialList] -> LinkedList
Imaginea arată tot ce am raskazal:
Pe scurt cum să-l folosească
Crearea unei noi structuri-l preia de la clasa de bază abstractă, chiar dacă trece peste toate metodele sale.
Pentru liste cu acces rapid, utilizați ArrayList. și în cazul în care o mulțime de inserții și deleții LinkedList. De exemplu, o mostră dintr-o bază de date. Desigur, cu atât mai bine pentru el să folosească un container de matrice asociative, deoarece șterge nimic nu este necesar. De exemplu, umple un LinkedList, atunci problema va ține mult timp acest lucru în minte și de multe ori obraschatsya la aceste date, pentru că vom plăti întreaga listă în ArrayList. Există mai multe modalități de a face rapid, uita-te la interfața de colectare.
Puteți rula acum pe ArrayList foarte repede, dar nu adaugă nimic pentru a fi! Dacă el începe să rastyagivatsya ar dura de două ori mai multă memorie.
O pluralitate (doar elemente unice). Alege cel mai frecvent HashSet. TreeSet este rar utilizat atunci când aveți nevoie de un set de sortat.
Dacă aveți nevoie pentru a lucra în mod constant cu elementele de containere pe care ar trebui să utilizeze întotdeauna Iterator. Acest lucru este valabil mai ales pentru LinkedList. Metoda get (int index) începe întotdeauna căutarea pentru elementul de Nil (start, antet) Lista de complexitate Q (Indech) Auto în timp ce Iteratorul păstrează poziția Q (1). Toate iteratorii realizovanna clasa imbricate, și, prin urmare, împărtășesc aceleași date cu containerul.
HashMap este un tablou asociativ (tabel hash). Nu înlocuiți în situații-cheie Pentru> valoare.
TreeMap păstrează toate elementele sortate, nu am folosit-o.
De asemenea, dacă utilizați o structură care stochează elementele lor sortate (TreeSet, TreeMap), atunci ar trebui să realizeze interfața java.lang.Comparable. Această interfață are o singură (Object) Metoda compareTo int ia un obiect și se întoarce la comparația:
mai mică decât zero în cazul în care obiectul este mai mică decât aceasta
0 în cazul în care acestea sunt egale
mai mare decât zero în cazul în care obiectul este mai mare decât acest obiect
Am postat foarte scurt timp.
Toate acestea pot fi citite în gândirea de carte în Java de Bruce Eckel.
Rescris toate zanogo lectură temă Fleym-> Setiket ;-)