Контейнерите в Java

Контейнерите в Java

Контейнери в Java.

Има два вида (интерфейси):
Колекция - контейнер елемент
Карта - стойност на ключа

Колекция от своите корени (интерфейси):
Списък - списък на
Комплект - много

Карта се осъществява чрез:
HashMap - маса Hash
Дървовидна карта - е SortedMap (интерфейс), която е всички елементи са сортирани (червено-черно дървета)

Списък пресата чрез:
ArrayList - списък на въз основа на масиви (Vector)
LinkedList - потомък AbstractSequentialList - две страни на свързан списък, той също razlizuyutsya Stak структура, опашките, DEQ

Set се осъществява чрез:
HashSet - хешираното много
А TreeSet - е SortedSet (интерфейс) - сортиран сет (червено-черно дърво)

Слизането на интерфейса винаги преминават през абстрактен клас, като LinkedList:
-> -> [AbstractList] -> [AbstractSequentialList] -> LinkedList

Картината показва всичко, което raskazal:

Накратко как да го използвате
Създаване на нова структура го наследи от абстрактен базов клас, дори и да отмени всички свои методи.

За списъци с бърз достъп, използвайте ArrayList. и където много вмъквания и изтривания LinkedList. Например извадка от база данни. Разбира се по-добре за него да се използва контейнер на асоциативни масиви, защото изтрие нищо не е необходимо. Например, запълни LinkedList, тогава проблемът време ще имате това предвид и често obraschatsya до тези данни, защото ние плащаме целия списък в ArrayList. Има много начини да го направи бързо, гледат на интерфейса на колекция.
Сега можете да изпълнявате на ArrayList много бързо, но добави нищо, за да бъде! Ако започне да rastyagivatsya, че ще отнеме два пъти повече памет.

Множество (само отделните елементи). Изберете най-често HashSet. TreeSet рядко се използва, когато имате нужда сортиран сет.

Ако имате нужда да работи последователно с елементи на контейнера, който винаги трябва да използват Итераторът. Това е особено вярно за LinkedList. Метод GET (инт индекс) винаги започва търсенето на елемента от Нил (старт, хедър) Списък сложност Q (Indech) Авто докато Итераторът запазва позицията си Q (1). Всички итератори realizovanna вложени клас и затова споделят едни и същи данни с контейнера.
HashMap е асоциативен масив (хеш таблицата). Не сменяйте в ситуации дентно> стойност.
Дървовидна карта поддържа всички елементи, сортирани, аз никога не съм го използват.

Също така, ако използвате структура, която съхраняват своите позиции сортирани (TreeSet, дървовидна карта), тогава вие трябва да осъзнаят java.lang.Comparable интерфейс. Този интерфейс има само един метод (Object) вътр compareTo се обект и се връща в сравнението:
по-малко от нула, ако обектът е по-малка от тази
0, ако те са равни
по-голяма от нула, ако обектът е по-голям от този обект

Аз афиш много скоро.
Всичко това може да се прочете в книгата на мислене в Java от Брус Eckel.

Пренаписаха всички zanogo четене тема Fleym-> Setiket ;-)