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