Middle
Javaда коллекциялардын иерархиясын сүрөттөп бериңиз.
sobes.tech AI
AIден жооп
Javaдагы коллекциялардын хиерархиясы стандарттык ыкмалар менен объекттер тобун көрсөтүүчү интерфейстердин жыйнагына негизделген.
Негизги интерфейстер:
Collection: хиерархиянын түпкү интерфейси. Бардык коллекциялар үчүн колдонулучу негизги операцияларды аныктайт: кошуу, өчүрүү, бар экенин текшерүү, өлчөмүн аныктоо.Set: дублдуулары жок жана белгилүү бир тартиби жок коллекция.List: тартиптелген коллекция, элементтерге индекс аркылуу кирүүгө мүмкүнчүлүк берет. Дублдуулары болушу мүмкүн.Queue: иштетүү алдынкы сактоо үчүн арналган коллекция. Адатта FIFO (биринчи кирген, биринчи чыгат) эрежесин карманат, бирок башка реализациялары да бар.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"); // чындык