Sobes.tech
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