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

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

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

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

1. Введение

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

Мы рассмотрим различные подходы с использованием Java и внешних сред, таких как Guava, Apache и т. д. Чтобы ознакомиться с коллекциями, ознакомьтесь с этой серией статей здесь .

2. Внешние библиотеки для работы с коллекциями

Наряду с нативными подходами мы также будем использовать внешние библиотеки. Добавьте следующие зависимости в pom.xml :

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

1. Обзор

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

2. Стандартные карты

В Java есть несколько реализаций интерфейса Map , каждая из которых имеет свои особенности.

Однако ни одна из существующих реализаций Map ядра Java не позволяет Map обрабатывать несколько значений для одного ключа .

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

1. Обзор

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

2. Введение в проблему

С момента появления Java Generics мы обычно использовали HashMap в общем виде, например:

Map<String, Integer> numberByName = new HashMap<>();

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

1. Обзор

Карты , естественно, являются одним из самых распространенных стилей коллекции Java.

И, что важно, HashMap не является потокобезопасной реализацией, в то время как Hashtable обеспечивает потокобезопасность за счет синхронизации операций.

Несмотря на то, что Hashtable является потокобезопасным, он не очень эффективен. Другая полностью синхронизированная карта, Collections.synchronizedMap, также не демонстрирует высокой эффективности. Если мы хотим потокобезопасности с высокой пропускной способностью при высоком уровне параллелизма, эти реализации не подходят.

Чтобы решить эту проблему, Java Collections Framework представила ConcurrentMap в Java 1.5 .

Следующие обсуждения основаны на Java 1.8 .

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

1. Обзор

В этой быстрой статье мы рассмотрим класс ConcurrentSkipListMap из пакета java.util.concurrent .

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

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

2. Логика потоковой сортировки

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

1. Обзор

Каркас коллекций является ключевым компонентом Java. Он предоставляет большое количество интерфейсов и реализаций, что позволяет нам создавать различные типы коллекций и управлять ими простым способом.

Хотя использование простых несинхронизированных коллекций в целом просто, оно также может стать сложным и подверженным ошибкам процессом при работе в многопоточных средах (так называемое параллельное программирование).

Таким образом, платформа Java обеспечивает мощную поддержку этого сценария с помощью различных оболочек синхронизации , реализованных в классе Collections .

Эти оболочки упрощают создание синхронизированных представлений предоставленных коллекций с помощью нескольких статических фабричных методов.

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

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

1. Обзор

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

2. Управление ключами

2.1. Внутренняя структура

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

1. Обзор

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

2. Варианты использования

Вложенный HashMap очень полезен для хранения JSON или JSON-подобных структур, в которых объекты встроены друг в друга. Например, структура или JSON, похожие на:

{
"type": "donut",
"batters":
{
“batter”:
[
{ "id": "1001", "type": "Regular" },
{ "id": "1002", "type": "Chocolate" },
{ "id": "1003", "type": "Blueberry" },
{ "id": "1004", "type": "Devil's Food" }
]
}
}

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

1. Введение

Многие разработчики решают хранить параметры приложения вне исходного кода. Один из способов сделать это в Java — использовать внешний файл конфигурации и читать его через класс java.util.Properties .

В этом руководстве мы сосредоточимся на различных подходах к преобразованию java.util.Properties в HashMap<String, String> . Мы будем реализовывать различные методы для достижения нашей цели, используя обычную Java, lambdas или внешние библиотеки. На примерах мы обсудим плюсы и минусы каждого решения.

2. Конструктор HashMap

Прежде чем мы реализуем наш первый код, давайте проверим Javadoc для java.util.Properties . Как мы видим, этот служебный класс наследуется от Hashtable<Object, Object> , который также реализует интерфейс Map . Более того, Java оборачивает свои классы Reader и Writer для работы непосредственно со строковыми значениями.

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

1. Обзор

В этой статье мы обсудим различные способы удаления записи из Java HashMap .

2. Введение

HashMap хранит записи в парах (Key, Value) с уникальными ключами. Таким образом, одной из идей было бы использование ключа в качестве идентификатора для удаления связанной записи с карты.

Мы можем использовать методы, предоставляемые интерфейсом java.util.Map , для удаления записи, используя ключ в качестве входных данных.