Junior
გააზიარეთ Java-ში კოლექციების ჰიერჰარქიის შესახებ.
sobes.tech AI
პასუხი AI-სგან
Java-да коллекциялар иерархиясы эки негизги интерфейске негизделген: Collection жана Map. Ал java.util пакетинде аныкталган.
Collection<E>: Көпчүлүк коллекциялар үчүн түпкү интерфейс. Элементтер тобу. Тәртип же уникалдуулук кепилденбейт:List<E>: Тәртиптелген коллекция (жыйнак). Элементтер белгилүү индекске ээ. Кайталоолор болушу мүмкүн:ArrayList<E>: Массив негизинде ишке ашыруу. Жылдам кездейсоқ кирүү, жай орнотуу/жок кылуу ортосунда:LinkedList<E>: Байланышкан тизме негизинде ишке ашыруу. Жай кездейсоқ кирүү, тез орнотуу/жок кылуу башында/аягында:Vector<E>: Эскирген синхрондоштурулган класс.ArrayListсыяктуу, бирок көбүрөөк коопсуздук менен (жана азыраак иштөөчү):Stack<E>: Эскирген класс,Vectorкеңейтет жана стектин жүрүм-турумун ишке ашырат (LIFO):
Set<E>: Бир уникалдуу элементтерди камтыган коллекция:HashSet<E>: Хеш-таблица негизинде ишке ашыруу. Тартипсиз. Жылдамadd,remove,containsоперациялары:LinkedHashSet<E>: Вставка тартибин сактайт:SortedSet<E>: Өсүү тартибинде сорттолгон топ:TreeSet<E>: Кызыл-кара дарак негизинде ишке ашыруу. Сорттолгон тартипти кепилдейт:
Queue<E>: Элементтерди сактоо үчүн коллекция, көбүнчө FIFO тартиби менен:PriorityQueue<E>: Приоритеттер кезеги. Элементтер алардын приоритетине ылайык чыгарыла турган:Deque<E>: (Эки жактуу кезек) Эки жактан да киргизүү жана чыгаруучу операцияларды колдойт:ArrayDeque<E>: Динамикалык массив негизинде ишке ашыруу. Жылдамыраак,LinkedListсыяктуу, стек же кезек катары колдонуу үчүн:
Map<K, V>: Объект, ал ачкычтарды маанилерге картадайт. Ачкычтар уникалдуу, маанилер кайталанышы мүмкүн:HashMap<K, V>: Хеш-таблица негизинде ишке ашыруу. Тартипсиз. Жылдамput,get,removeоперациялары:LinkedHashMap<K, V>: Вставка же кирүү тартибин сактайт:SortedMap<K, V>: Ачкычтар боюнча сорттолгон карта:TreeMap<K, V>: Кызыл-кара дарак негизинде ишке ашыруу. Ачкычтар боюнча сорттолгон тартипти кепилдейт:
Hashtable<K, V>: Эскирген синхрондоштурулган класс.HashMapсыяктуу, бирок көбүрөөк коопсуздук менен (жана азыраак иштөөчү):
Негизги интерфейстер:
| Интерфейс | Тасвирдөө | Тартип | Уникалдуулук | Кайталоо маанилери |
|---|---|---|---|---|
Collection |
Элементтер тобу | +/- | +/- | Ооба |
List |
Тартиптелген коллекция | Ооба | Жок | Ооба |
Set |
Бир уникалдуу элементтер коллекциясы | +/- | Ооба | Жок |
Queue |
Өңдөө үчүн коллекция (FIFO) | Ооба | Жок | Ооба |
Deque |
Эки жактуу кезек | Ооба | Жок | Ооба |
Map |
Ачкыч-маанилер | +/- | Ачкыч боюнча | Ооба |
SortedSet |
Сорттолгон топ | Ооба | Ооба | Жок |
SortedMap |
Ачкычтар боюнча сорттолгон карта | Ооба | Ачкыч боюнча | Ооба |
Колдонуу мисалы:
// ArrayList колдонуу мисалы
List<String> names = new ArrayList<>();
names.add("Alice");
names.add("Bob");
System.out.println(names.get(0)); // Alice
// HashSet колдонуу мисалы
Set<Integer> uniqueNumbers = new HashSet<>();
uniqueNumbers.add(1);
uniqueNumbers.add(2);
uniqueNumbers.add(1); // Кайталоо эленбейт
System.out.println(uniqueNumbers.size()); // 2
// HashMap колдонуу мисалы
Map<String, Integer> ages = new HashMap<>();
ages.put("Alice", 30);
ages.put("Bob", 25);
System.out.println(ages.get("Alice")); // 30