AlgorithmsDataStructuresJavaDataStructures
wingman007 |
PRO |
10/18/25 04:39:09 PM UTC (Edited) |
0 ⭐ |
13971 👁️ |
Never ⏰ |
[Algorithms & Data Structures]
📦 1. Array
Какво е? Фиксиран по размер контейнер за елементи от един и същи тип.
Кога се използва? Когато знаем предварително колко елемента ще имаме.
int[] numbers = {1, 2, 3};
System.out.println(numbers[0]); // 1
📦 2. ArrayList
Какво е? Динамичен масив с бърз достъп по индекс.
Кога се използва? Когато размерът на списъка може да се променя често.
import java.util.ArrayList;
ArrayList<String> names = new ArrayList<>();
names.add("Иван");
System.out.println(names.get(0)); // Иван
📦 3. LinkedList
Какво е? Двусвързан списък с лесно добавяне и премахване.
Кога се използва? Когато често добавяме/махаме от началото или средата.
import java.util.LinkedList;
LinkedList<Integer> list = new LinkedList<>();
list.add(10);
list.add(20);
System.out.println(list.getFirst()); // 10
📦 4. HashMap
Какво е? Несортирана асоциативна структура от ключ–стойност.
Кога се използва? Когато искаме бърз достъп по ключ.
import java.util.HashMap;
HashMap<String, Integer> map = new HashMap<>();
map.put("А", 1);
map.put("Б", 2);
System.out.println(map.get("А")); // 1
📦 5. TreeMap
Какво е? Сортирана по ключове асоциативна структура.
Кога се използва? Когато искаме ключовете да са подредени.
import java.util.TreeMap;
TreeMap<String, Integer> map = new TreeMap<>();
map.put("Б", 2);
map.put("А", 1);
System.out.println(map.firstKey()); // А
📦 6. HashSet
Какво е? Множество без повторения, без определен ред.
Кога се използва? Когато трябва да съхраним уникални елементи.
import java.util.HashSet;
HashSet<String> set = new HashSet<>();
set.add("Java");
set.add("Java");
System.out.println(set.size()); // 1
📦 7. TreeSet
Какво е? Сортирано множество без дубликати.
Кога се използва? Когато искаме уникални елементи в нареден вид.
import java.util.TreeSet;
TreeSet<Integer> set = new TreeSet<>();
set.add(3);
set.add(1);
System.out.println(set.first()); // 1
📦 8. Stack
Какво е? Стек (LIFO – последен влязъл, пръв излиза).
Кога се използва? При рекурсивни алгоритми, браузър история и др.
import java.util.Stack;
Stack<Integer> stack = new Stack<>();
stack.push(10);
stack.push(20);
System.out.println(stack.pop()); // 20
📦 9. Queue
Какво е? Опашка (FIFO – първи влязъл, първи излиза).
Кога се използва? При обработка на събития, задачи и т.н.
import java.util.Queue;
import java.util.LinkedList;
Queue<String> queue = new LinkedList<>();
queue.add("A");
queue.add("B");
System.out.println(queue.poll()); // A
📦 10. Deque (Double-Ended Queue)
Какво е? Опашка с добавяне/премахване и от двете страни.
Кога се използва? При буфери или палиндромни проверки.
import java.util.ArrayDeque;
import java.util.Deque;
Deque<String> deque = new ArrayDeque<>();
deque.addFirst("начало");
deque.addLast("край");
System.out.println(deque.getFirst()); // начало
📦 11. PriorityQueue
Какво е? Приоритетна опашка – елементите се извеждат според приоритет.
Кога се използва? При задачи със спешност, алгоритъм на Дейкстра и др.
import java.util.PriorityQueue;
PriorityQueue<Integer> pq = new PriorityQueue<>();
pq.add(30);
pq.add(10);
System.out.println(pq.poll()); // 10
📦 12. Hashtable
Какво е? Стара, синхронизирана хеш таблица.
Кога се използва? Рядко – заменена от HashMap.
import java.util.Hashtable;
Hashtable<String, String> table = new Hashtable<>();
table.put("Ключ", "Стойност");
System.out.println(table.get("Ключ")); // Стойност
📦 13. Vector
Какво е? Стара версия на ArrayList, синхронизирана.
Кога се използва? Почти никога в съвременен код.
import java.util.Vector;
Vector<Integer> vector = new Vector<>();
vector.add(100);
System.out.println(vector.get(0)); // 100
📦 14. BitSet
Какво е? Масив от бита (boolean стойности).
Кога се използва? За ефективни побитови операции.
import java.util.BitSet;
BitSet bits = new BitSet();
bits.set(2);
System.out.println(bits.get(2)); // true
Comments
0 B
|0 👍
/0 👎
0 B
|👍
/👎