Sobes.tech
Junior

Kādas ir kolekciju realizācijas Java programmēšanas valodā?

sobes.tech AI

Atbilde no AI

  • Saskarnes:

    • Collection: Visu kolekciju pamata saskarne.
    • List: Sakarta kolekcija (ar indeksiem).
    • Set: Kolekcija bez dublikatiem.
    • SortedSet: Sakarta kolekcija bez dublikatiem, elementiem ir sakartota.
    • Map: Asociatīvais masīvs (atslēga-vērtība).
    • SortedMap: Sakārtots asociatīvais masīvs pēc atslēgām.
    • Queue: Kolekcija elementu glabāšanai pirms to apstrādes.
    • Deque: Divvirzienu rinda.
  • Klases (galvenās realizācijas):

    • List:
      • ArrayList: Dinamisks masīvs. Ātrs piekļuve pēc indeksa, lēnas operācijas ievietošanas/izņemšanas vidū.
      • LinkedList: Divvirzienu saistīts saraksts. Lēna piekļuve pēc indeksa, ātras ievietošanas/izņemšanas operācijas vidū.
      • Vector: Novecojis sinhronizēts ArrayList ekvivalents.
      • Stack: Vector apakšklase, kas realizē steku (LIFO).
  • Set: - HashSet: Pamats balstīts uz haštabulu. Ne garantē elementu kārtību. - LinkedHashSet: Pamats balstīts uz haštabulu un sasaistītu sarakstu. Saglabā ievietošanas kārtību. - TreeSet: Pamats balstīts uz sarkano-zaļo koku. Elementi ir sakārtoti augošā secībā.

  • Map: - HashMap: Pamats balstīts uz haštabulu. Ne garantē pāru kārtību. - Hashtable: Novecojis sinhronizēts HashMap ekvivalents. - LinkedHashMap: Pamats balstīts uz haštabulu un sasaistītu sarakstu. Saglabā ievietošanas kārtību. - TreeMap: Pamats balstīts uz sarkano-zaļo koku. Pāri ir sakārtoti pēc atslēgām.

  • Queue: - PriorityQueue: Prioritātes rinda. Elementi tiek izņemti pēc to dabiskās kārtības vai salīdzinātāja. - ArrayDeque: Divvirzienu rinda, balstīta uz masīvu.

  • Noderīgi rīki: - Collections: Statiskās metodes darbam ar kolekcijām (kārtošana, meklēšana, sinhronizācija utt.).

// Piemērs ar ArrayList
List<String> names = new ArrayList<>();
names.add("Alice");
names.add("Bob");
System.out.println(names.get(0)); // Alice
// Piemērs ar HashSet
Set<Integer> numbers = new HashSet<>();
numbers.add(1);
numbers.add(2);
numbers.add(1); // Dublikāts netiks pievienots
System.out.println(numbers.size()); // 2
// Piemērs ar HashMap
Map<String, Integer> ages = new HashMap<>();
ages.put("Alice", 30);
ages.put("Bob", 25);
System.out.println(ages.get("Alice")); // 30
// Piemērs ar PriorityQueue
Queue<Integer> priorityQueue = new PriorityQueue<>();
priorityQueue.add(3);
priorityQueue.add(1);
priorityQueue.add(2);
System.out.println(priorityQueue.poll()); // 1 (zemākais prioritāte)