Junior
Ի՞նչ են Java ծրագրավորման լեզվում հավաքածուների իրականացման տարբերակները։
sobes.tech AI
Պատասխան AI-ից
-
Ինտերֆեյսներ:
Collection: Բազային ինտերֆեյս բոլոր հավաքածուների համար:List: Կարգավորված հավաքածու (միայն ինդեքսներով):Set: Հավաքածու առանց կրկնությունների:SortedSet: Կարգավորված հավաքածու առանց կրկնությունների, որի տարրերը դասավորված են:Map: Ասոցացիոն զանգված ( բանալին-արժեք):SortedMap: Դասավորված ասոցացիոն զանգված ըստ բանալիների:Queue: Հավաքածու տարրերի պահեստավորման համար նախքան դրանց մշակումը:Deque: Երկու կողմանի հերթ:
-
Կլասներ (հիմնական իրագործումները):
-
Listհամար:ArrayList: Դինամիկ զանգված: Արագ մուտք դեպի ինդեքս, դանդաղ մուտք/հանում միջին մասում:LinkedList: Երկու կապակցված ցանկ: Դանդաղ մուտք դեպի ինդեքս, արագ մուտք/հանում միջին մասում:Vector: Զատկած սինխրոնիզացվածArrayList:Stack:Vectorենթակլաս, որը իրականացնում է ստեկ (LIFO):
-
Setհամար:HashSet: Հաշվային աղյուսակի վրա հիմնված իրագործում: Չի երաշխավորում տարրերի կարգը:LinkedHashSet: Հաշվային աղյուսակի և կապված ցանկի վրա հիմնված իրագործում: Պահպանում է մուտքագրման կարգը:TreeSet: Կարմրո-սև ծառի վրա հիմնված իրագործում: Տարրերը դասավորված են աճման կարգով:
-
Mapհամար:HashMap: Հաշվային աղյուսակի վրա հիմնված իրագործում: Չի երաշխավորում զույգերի կարգը:Hashtable: Զատկած սինխրոնիզացվածHashMap:LinkedHashMap: Հաշվային աղյուսակի և կապված ցանկի վրա հիմնված իրագործում: Պահպանում է մուտքագրման կարգը:TreeMap: Կարմրո-սև ծառի վրա հիմնված իրագործում: Զույգերը դասավորված են ըստ բանալիների:
-
Queueհամար:PriorityQueue: Առաջնահերթության հերթ: Էլեմենտները հանվում են ըստ բնական կարգի կամ համեմատիչի:ArrayDeque: Երկու կողմանի հերթ, հիմնված զանգվածի վրա:
-
-
Օգտակար գործիքներ:
Collections: Ստատիկ մեթոդներ հավաքածուների աշխատանքի համար (վերացանկ, որոնում, սինխրոնիզացիա և այլն):
// Օրինակ `ArrayList` օգտագործելու համար
List<String> names = new ArrayList<>();
names.add("Alice");
names.add("Bob");
System.out.println(names.get(0)); // Alice
// Օրինակ `HashSet` օգտագործելու համար
Set<Integer> numbers = new HashSet<>();
numbers.add(1);
numbers.add(2);
numbers.add(1); // Կրկնօրինակը չի ավելացվի
System.out.println(numbers.size()); // 2
// Օրինակ `HashMap` օգտագործելու համար
Map<String, Integer> ages = new HashMap<>();
ages.put("Alice", 30);
ages.put("Bob", 25);
System.out.println(ages.get("Alice")); // 30
// Օրինակ `PriorityQueue` օգտագործելու համար
Queue<Integer> priorityQueue = new PriorityQueue<>();
priorityQueue.add(3);
priorityQueue.add(1);
priorityQueue.add(2);
System.out.println(priorityQueue.poll()); // 1 (նվազագույն առաջնահերթություն)