Краткое введение, анализ и сравнение списков, наборов и карт

Структура данных

По определению, структура данных - это особый метод организации данных в компьютере, чтобы их можно было эффективно использовать. Мы уже видели структуры данных в этой статье ранее, а также видели Массивы, Очереди и Стек.

В этой статье мы узнаем о платформе Collection Framework, которая позволяет нам реализовать некоторые важные структуры данных, доступные на Java.

Темы охватывали:

Структура данных
Структура сбора
Класс против интерфейса
Списки
Установить
Карта
Разница между интерфейсами List, Set и Map в Java

Рамки сбора

Коллекция Java - это группа отдельных объектов, которые представлены как единое целое. Коллекции Java, как и данные, предоставляют все действия, такие как поиск, сортировка, вставка, модификация, удаление и т. Д. Коллекции Java - довольно обширная тема, и новичку может быть сложно сориентироваться. Мы рассмотрели все, что вам нужно знать, чтобы начать работу с коллекциями Java.

Что такое фреймворк в Java?

  1. Предлагает сборную архитектуру.
  2. Он обозначает набор классов и интерфейсов.
  3. Это совершенно необязательно.

Что такое система сбора данных?

Фреймворк Collection - это согласованная архитектура для хранения и управления коллекцией элементов.

Она имеет:

  1. Интерфейсы и их реализации, т. Е. Классы
  2. Алгоритм

Класс против интерфейса

Списки

Интерфейс коллекции уступает место интерфейсу списка. Компоненты списка расположены в последовательном порядке. Пользователь может получить доступ к конкретному элементу в списке, используя номер индекса; другими словами, пользователь имеет полный контроль над тем, какой элемент помещается в список.

  • ArrayList

Интерфейс List реализован классом ArrayList. Объектами этого класса являются динамические массивы. ArrayList - это изменяемая версия класса List. Он реализует все методы List и принимает все элементы, даже нулевые. Емкость объектов ArrayList изначально равна размеру, но она динамически увеличивается при добавлении дополнительных компонентов. ArrayList не синхронизирован, что означает, что к нему могут обращаться одновременно несколько потоков. В операционной системе поток - это единица последовательного управления потоком, которая может быть обработана.

Синтаксис для создания целочисленного типа ArrayList;

ArrayList<Integer> intArrayList = new ArrayList<Integer>();

Давайте посмотрим на реализацию ArrayList.

Набор

Интерфейс Set расширяет функциональность интерфейса Collection. Набор - это структура, которая представляет собой математическое определение набора. Он изображает несортированную группу элементов, которая не позволяет нам хранить дубликаты. В Set мы можем сохранить только одно нулевое значение. HashSet, LinkedHashSet и TreeSet являются реализациями Set.

Давайте посмотрим на реализацию одной из реализаций Set благодаря особому свойству, которое мы видим в сравнительной части.

  • TreeSet

Интерфейс Navigable реализован классом TreeSet. TreeSet использует древовидную структуру для хранения компонентов и набор для их организации, как следует из названия. Двумя вариантами являются естественный порядок или порядок компаратора, установленный во время построения. Поскольку TreeSet не синхронизирован, мы должны синхронизировать его извне, если многие потоки хотят получить к нему доступ одновременно.

Синтаксис для создания целочисленного типа TreeSet;

TreeSet<Integer> intTreeSet = new TreeSet<Integer>();

Давайте посмотрим на реализацию TreeSet.

карта

Интерфейс карты - это структура, которая связывает каждое значение с ключом. Поскольку один ключ не может иметь нескольких сопоставлений, карта не допускает дублирования элементов. Карту можно рассматривать тремя способами: как набор ключей, набор сопоставлений "ключ-значение" или как набор значений. Методы интерфейса Map перечислены ниже, и любой класс, реализующий Map, должен определять эти методы.

SortedMap

Интерфейс SortedMap добавляет к интерфейсу Map общий порядок ключей. В зависимости от используемого конструктора ключи сортируются либо в естественном порядке, либо с помощью компаратора, заданного во время создания. Все ключи должны быть сопоставимы.

  • TreeMap

Интерфейс SortedMap реализован классом TreeMap. Класс TreeMap хранит данные в красно-черной древовидной структуре и упорядочивает компоненты с помощью карты. Каждый элемент - это пара ключей и значений. Для основных операций это решение гарантирует log (n) временных затрат.

Синтаксис для создания типа String TreeMap;

TreeMap<Integer, String> treeMap = new TreeMap<Integer, String>();

Давайте посмотрим на реализацию TreeMap.

Разница между интерфейсами List, Set и Map в Java

1 - Заказ

Список - в Java список представляет собой упорядоченную последовательность, к записям которой осуществляется доступ по индексу.

Набор - в Java набор - это уникальный набор элементов, который можно сортировать или неупорядочивать в зависимости от реализации. Например, реализации HashSet неупорядочены, реализации LinkedHashSet упорядочены, а реализации TreeSet упорядочены в естественном порядке или заданном компараторе.

Карта - в Java карта представляет сопоставление "ключ-значение". Порядок карты также зависит от реализации. Например, класс TreeMap упорядочен, а класс HashMap - нет.

2 - Дубликаты

Список - возможно дублирование элементов в списке.

Набор - только отдельные элементы составляют набор.

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

3 - Нулевые значения

Список - в списке может быть любое количество нулевых значений.

Набор - в наборе может быть только один нулевой элемент.

Карта. Хотя null может использоваться как ключ, так и значение в Map, некоторые реализации не допускают пустые ключи или значения.

4 - Реализация классов

Список - ArrayList и LinkedList - два наиболее распространенных класса реализации интерфейса List.

Set - HashSet, TreeSet и LinkedHashSet являются примерами установленных интерфейсов.

Карта - классы HashMap, TreeMap и LinkedHashMap доступны через интерфейс карты.

5 - Когда использовать список, набор и карту?

Список - когда необходимо сохранить порядок вставки элементов, можно использовать список.

Set - если нам нужно сохранить коллекцию без дубликатов, мы можем использовать set.

Карта - если данные включают пары ключ-значение и требуется быстрое извлечение значения на основе ключа, используйте карту.

6 - Индекс и элементы

Список - функция get () в списке может использоваться для получения элемента по определенному индексу.

Set - метод get в Set не возвращает элементы по указанному индексу.

Карта - метод get на карте не возвращает записи по указанному индексу.

7 - Итератор

Список - Listlterator используется для просмотра элементов списка.

Набор - Итератор - это инструмент для обхода набора элементов.

Карта - с помощью набора ключей, значения и набора записей.

Вы также можете столкнуться с вопросами во время собеседования. Это самые основы структуры данных. Убедитесь, что вы знаете обо всем этом.

Я надеюсь это тебе поможет. Поделитесь и своими мыслями.

Первоначально опубликовано на https://decrypthere.blogspot.com 14 июня 2021 г.