Sobes.tech
Middle

Тартиби ҳиерархияи коллексияҳоро дар Java тавсиф кунед.

sobes.tech AI

Ҷавоб аз AI

Ҳиерархияи ҷамъиятҳо дар Java асос ёфтааст ба маҷмӯи интерфейсҳо, ки роҳҳои стандартӣ барои намояндагии гурӯҳҳои объектҳоро пешниҳод мекунанд.

Интерфейсҳои асосӣ:

  • Collection: интерфейси решаи ҳиерархия. Оғоз мекунад амалиётҳои асосӣ, ки ба ҳама ҷамъиятҳо дахл доранд: илова кардан, хориҷ кардан, санҷиши мавҷудияти унсурҳо, муайян кардани андоза.
  • Set: ҷамъият, ки дублярҳоро надорад ва тартиби муайян надорад.
  • List: ҷамъияти мураттаб бо имконияти дастрасӣ ба унсурҳо тавассути индекс. Мумкин аст дубляр дошта бошад.
  • Queue: ҷамъияти барои нигоҳ доштани унсурҳо пеш аз коркард. Одатан қоидаи FIFO (First-In, First-Out) риоя мекунад, аммо дигар татбиқҳо низ ҳастанд.
  • Deque: навбат дар ҳар ду тараф. Имконият медиҳад, ки унсурҳоро дар ҳар ду канор илова ва хориҷ кардан мумкин аст.
  • Map: ҷамъият, ки ҷуфтҳои "калид-арзиш"-ро нигоҳ медорад. Калидҳо бояд ягона бошанд. Интерфейси Collection-ро васеъ намекунад.

Классҳои асосии татбиқкунанда (мисолҳо):

Интерфейс Классҳои татбиқкунанда (мисолҳо) Тавсиф
Set HashSet, LinkedHashSet, TreeSet Бе дубляр. HashSet - бе тартиб, LinkedHashSet - нигоҳ медорад тартиби илова кардан, TreeSet - ба тартиб овардашуда.
List ArrayList, LinkedList, Vector Мураттаб. ArrayList - асос ёфта дар массив, LinkedList - асос ёфта дар рӯйхати пайвастшуда, Vector - синхронизатсияшуда (застарда).
Queue LinkedList, PriorityQueue Барои коркард. LinkedList - FIFO, PriorityQueue - асос ёфта дар афзалиятҳо.
Deque ArrayDeque, LinkedList Навбат дар ҳар ду тараф. ArrayDeque - асос ёфта дар массив, LinkedList - асос ёфта дар рӯйхати пайвастшуда.
Map HashMap, LinkedHashMap, TreeMap, Hashtable Калид-арзиш. HashMap - бе кафолати тартиб, LinkedHashMap - нигоҳ медорад тартиби илова кардан/дастрасӣ, TreeMap - ба тартиб овардашуда дар асоси калидҳо, Hashtable - синхронизатсияшуда (застарда).

Мисол барои истифодаи ArrayList:

// Эҷоди ArrayList аз сатрҳо
List<String> fruits = new ArrayList<>();
// Илова кардани унсурҳо
fruits.add("Apple");
fruits.add("Banana");
fruits.add("Orange");
// Дастрасӣ тавассути индекс
String firstFruit = fruits.get(0); // Apple
// Андозаи ҷамъият
int size = fruits.size(); // 3

Мисол барои истифодаи HashSet:

// Эҷоди HashSet аз рақамҳои бутун
Set<Integer> numbers = new HashSet<>();
// Илова кардани унсурҳо (дуфторҳо нодида гирифта мешаванд)
numbers.add(1);
numbers.add(2);
numbers.add(2); // Нодида гирифта мешавад
// Андозаи ҷамъият
int size = numbers.size(); // 2

Мисол барои истифодаи HashMap:

// Эҷоди HashMap: калид - String, арзиш - Integer
Map<String, Integer> ages = new HashMap<>();
// Илова кардани ҷуфтҳои калид-арзиш
ages.put("Alice", 30);
ages.put("Bob", 25);
// Гирифтани арзиш тавассути калид
int aliceAge = ages.get("Alice"); // 30
// Санҷиши мавҷудияти калид
boolean hasBob = ages.containsKey("Bob"); // дуруст