wingman007

AlgorithmsDataStructuresJavaDatastructures

Oct 18th, 2025 (edited)
626
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!

Java Data Structures Cheat Sheet

📦 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
Add Comment
Please, Sign In to add comment