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>: Динамикалық массив негізіндегі Deque жүзеге асыруы. 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