Перейти к основному содержимому

54 записи с тегом "Java Map"

Посмотреть все теги

· 3 мин. чтения

1. Обзор

Иногда предпочтительнее запретить внесение изменений в java.util.Map , например совместное использование данных, доступных только для чтения, между потоками. Для этой цели мы можем использовать либо неизменяемую карту, либо неизменяемую карту.

В этом кратком руководстве мы увидим, в чем разница между ними. Затем мы представим различные способы создания неизменяемой карты.

2. Неизменяемый против неизменного

Немодифицируемая карта — это просто оболочка над модифицируемой картой, и она не позволяет изменять ее напрямую:

· 2 мин. чтения

1. Обзор

В этом уроке мы кратко рассмотрим новый метод по умолчанию calculateIfAbsent интерфейса Map , представленный в Java 8.

В частности, мы рассмотрим его сигнатуру, использование и то, как он обрабатывает различные случаи.

2. Метод Map.computeIfAbsent

Начнем с сигнатуры calculateIfAbsent :

· 7 мин. чтения

1. Обзор

В этой статье мы собираемся изучить внутреннюю реализацию класса LinkedHashMap . LinkedHashMap — это обычная реализация интерфейса Map .

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

2. LinkedHashMap против HashMap

Класс LinkedHashMap во многих аспектах очень похож на HashMap . Однако связанная хеш-карта основана как на хэш-таблице, так и на связанном списке, чтобы расширить функциональность хэш-карты.

· 5 мин. чтения

1. Обзор

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

Мы обсудим несколько способов проверки сходства двух HashMaps . Мы также будем использовать Java 8 Stream API и Guava, чтобы получить подробные различия между различными HashMaps .

2. Использование Map.equals()

Во- первых, мы будем использовать Map.equals() , чтобы проверить, имеют ли два HashMap одинаковые записи:

· 4 мин. чтения

1. Обзор

В этом руководстве мы рассмотрим концепцию поверхностной и глубокой копии HashMap, а также несколько методов копирования HashMap в Java.

Мы также рассмотрим некоторые внешние библиотеки, которые могут помочь нам в конкретных случаях.

2. Мелкие и глубокие копии

Во-первых, давайте разберемся с концепцией мелких и глубоких копий в HashMaps .

· 4 мин. чтения

1. Обзор

В этом кратком руководстве мы рассмотрим различные способы поиска максимального значения в карте Java . Мы также увидим, как новые возможности Java 8 упростили эту операцию.

Прежде чем мы начнем, давайте кратко вспомним, как объекты сравниваются в Java.

Обычно объекты могут выражать естественный порядок путем реализации метода compareTo() из интерфейса Comparable . Однако порядок, отличный от естественного, может использоваться через объект Comparator . Мы увидим их более подробно по ходу дела.

2. До Java 8

· 13 мин. чтения

1. Обзор

В этой статье мы собираемся более подробно изучить самую популярную реализацию интерфейса Map из Java Collections Framework, продолжая с того места, на котором остановилась наша вступительная статья.

Прежде чем мы приступим к реализации, важно отметить, что основные интерфейсы коллекций List и Set расширяют Collection , а Map — нет.

Проще говоря, HashMap хранит значения по ключу и предоставляет API для добавления, извлечения и обработки сохраненных данных различными способами. Реализация основана на принципах хеш-таблицы , которые на первый взгляд кажутся сложными, но на самом деле их очень легко понять.

Пары ключ-значение хранятся в так называемых корзинах, которые вместе составляют то, что называется таблицей, которая на самом деле является внутренним массивом.

Как только мы узнаем ключ, под которым хранится или должен храниться объект, операции хранения и извлечения выполняются за постоянное время , O(1) в хеш-карте с хорошими размерами.

· 4 мин. чтения

1. Введение

В этом кратком руководстве мы продемонстрируем три различных подхода к извлечению ключа из карты для заданного значения. Мы также обсудим положительные и отрицательные стороны различных решений.

Чтобы узнать больше об интерфейсе карты , вы можете прочитать эту статью .

2. Итеративный подход

· 5 мин. чтения

1. Введение

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

Чтобы быть более конкретным, мы рассмотрим различные сценарии слияния, включая карты с повторяющимися записями.

2. Инициализация

· 7 мин. чтения

1. Введение

В этой статье мы собираемся сравнить две реализации Map : TreeMap и HashMap .

Обе реализации составляют неотъемлемую часть Java Collections Framework и хранят данные в виде пар ключ-значение .

2. Отличия

2.1. Реализация