Как следует из названия, коллекция — это группа объектов, а структура коллекции Java предоставляет реализации, которые могут содержать группу объектов.

Коллекция Java разделена на 4 основных раздела:

  1. Набор
  2. Список
  3. Очередь
  4. карта

SET — это структура данных, в которой хранятся уникальные объекты. В java Set - это интерфейс, и он имеет 3 реализации:

  1. HashSet — набор, который размещает неупорядоченные и несортированные объекты. HashSet используется, когда порядок вставки/расположения объектов не важен. Внутри он использует HashMap для хранения элементов.
  2. LinkedHashSet — Установите, в каком порядке вставки сохраняется.
  3. TreeSet — Набор, в котором объекты размещаются в отсортированном порядке.

СПИСОК. Это структура данных, в которой мы можем хранить упорядоченный набор объектов. Он может иметь повторяющиеся значения. Список представляет собой интерфейс в java, а ниже приведены реализации:

  1. ArrayList — внутри он хранит данные в динамическом массиве. ArrayList используется, когда доступ к элементам осуществляется чаще, чем вставка/удаление.
  2. LinkedList — внутри он хранит данные в LinkedList. Он используется, когда операция вставки/удаления используется чаще, чем операция чтения.
  3. Вектор — это также используемый массив в качестве внутренней структуры данных. Отличие ч/б ArrayList и Vector в том, что Vector является потокобезопасным, т.е. все функции синхронизированы.

Очередь —линейная структура данных, в которой данные хранятся в порядке LIFO.

  1. LinkedList — LinkedList реализует интерфейс List и Queue.
  2. PriorityQueue — это очередь, в которой каждый вставленный элемент также связан с приоритетом, и элемент с наибольшим приоритетом будет удален первым. Внутри он использует структуру данных Heap.

Карта – это набор объектов пары "ключ-значение". Он имеет 4 реализации-

  1. HashMap - данные хранятся как неупорядоченные и несортированные
  2. LinkedHashMap — порядок вставки сохраняется
  3. Hashtable-Legacy Map, которая является потокобезопасной, а данные хранятся как неупорядоченные и несортированные.
  4. TreeMap-ключи хранятся в отсортированном порядке. Внутренне используется красно-черное дерево для хранения данных.

КОД -

импортировать java.util.*;
импортировать java.lang.*;
импортировать java.io.*;

class Ideone
{
public static void main (String[] args) throws java.lang.Exception
{

// Set использует метод hashcode & equals
Set ‹Integer› set = new HashSet‹›();
set.add(1);
set.add(2);
set.add(1);
System.out.println(set.size());
set.remove(1);
System.out.println(set.size());


// ArrayList — удалить, содержит метод equals для проверки наличия элемента
List‹Integer› list = new ArrayList‹›();
list.add(1) ;
list.add(2);
System.out.println(list.get(0));
list.remove((int)0); // удалить в позиции 0
System.out.println(list.get(0));
list.remove((Integer)2); // удалить целочисленный объект 2
System.out.println(list.size());

list.add(10);
list.add(1);< br /> list.add(100);
Collections.sort(list);

/* используется метод compareTo и порядок по умолчанию восходящий */

System.out.println(Arrays.toString(list.toArray()));

Collections.sort(список, (а, б) -> б-а );

/*

Пользовательский компаратор передается в качестве параметра, который будет использоваться для принятия решения о замене.

Например, если 2-й объект b больше, чем первый объект a, тогда верните положительный результат, чтобы создать порядок описания

*/

System.out.println(Arrays.toString(list.toArray()));


// HashMap использует метод hashcode & equals
Map‹Integer, Integer› map = new HashMap‹›();
map.put(1,2);
System.out.println(map.get(1));
System.out.println(map. containsKey(1));
map.remove(1);
System.out.println(map.size());
map.put(10,20);
> map.putIfAbsent(10,10);
System.out.println(map.get(10));
System.out.println(map.getOrDefault(12, 0));


// Очередь — LinkedList
// Очередь с приоритетом работает так же, но удаляет самый приоритетный объект, который вычисляется с помощью метода compareTo
Queue‹Integer› queue = новый LinkedList‹›();
queue.add(1);
queue.add(2);
System.out.println(queue.element());
queue.remove();
System.out.println(queue.element());

}
}

ВЫВОД -

2
1
1
2
0
[1, 10, 100]
[100, 10, 1]
2
true
0
20
0
1
2