Konténerek a java

Konténerek a Java.
Kétféle (interfészek):
Collection - tároló elemet
Térkép - a kulcs értékét
Gyűjtemény annak eredete (interfészek):
List - a lista
Set - sok
Térkép valósul:
HashMap - Hash tábla
Treemap - jelentése SortedMap (interfész), ami minden elem vannak sorolva (piros-fekete fák)
List verziókról:
ArrayList - egy listát a tömb-alapú (Vector)
Láncolt lista - leszármazottja AbstractSequentialList - két oldala egy láncolt lista, ez is razlizuyutsya Stak szerkezet, Sor, DEQ
Set valósul:
Hash-halmaz - kivonatolt sok
A TreeSet - egy SortedSet (interface) - egy rendezett halmaz (piros-fekete fa)
-> -> [AbstractList] -> [AbstractSequentialList] -> láncolt lista
A képen minden, amit raskazal:
Röviden, hogyan kell használni
Létrehozva egy új struktúra öröklik azt az absztrakt alap osztály, akkor is, ha felülbírálja az módszereit.
Mert listák gyors hozzáférést használja ArrayList. és ahol sok a beszúrások és törlések láncolt lista. Például egy mintát egy adatbázisból. Természetesen a jobb is, hogy egy konténer asszociatív tömbök, mert töröl semmit nem szükséges. Például, töltse ki a láncolt lista, akkor a probléma hosszú tartsa ezt szem előtt, és gyakran obraschatsya az adatokhoz, mert mi fizetjük a teljes listát a ArrayList. Számos módja van, hogy csináld gyorsan, nézd meg a Collection felületen.
Most fut a ArrayList nagyon gyorsan, de hozzá sem kell! Ha elkezd rastyagivatsya lenne szükség kétszer annyi memóriát.
Sokasága (csak az egyedi elemek). Válassza a leggyakrabban Hash-halmaz. TreeSet ritkán használják, amikor szüksége van egy rendezett halmaz.
Ha meg kell dolgozni következetesen a tartály elemek mindig használja bejáró. Ez különösen igaz a láncolt lista. Módszer get (int index) mindig elkezdi keresni az elemet a Nile (start, fejléc) lista bonyolultsága Q (Indech) Auto míg Iterátor tartja pozícióját Q (1). Minden iterátorokat realizovanna beágyazott osztály, ezért azonos adatokat a tartályba.
HashMap egy asszociatív tömb (hash tábla). Ne cserélje helyzetekben kulcs-> értéket.
Treemap tartja mindazokat az elemeket válogatni, én még soha nem használtam.
Továbbá, ha egy szerkezet, amely tárolja az elemeket rendezve (TreeSet, Treemap), akkor meg kell ismernünk, java.lang.Comparable felület. Ennek az interfésznek egyetlen int compareTo (Object) metódus egy objektumot, és visszatér az összehasonlítást:
kevesebb, mint nulla, ha a tárgy ennél kevesebb
0, ha azok egyenlőek
nullánál nagyobb, ha a tárgy nagyobb, mint ez az objektum
Én írt nagyon röviden.
Mindez lehet olvasni a könyvet gondolkodás Java Bruce Eckel.
Átírta az összes zanogo olvasott téma Fleym-> Setiket ;-)