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

169 записей с тегом "Java Коллекции"

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

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

1. Введение

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

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

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

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

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

1. Обзор

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

Мы рассмотрим пять различных подходов: два с использованием Java 8, один с использованием Guava, один с использованием Apache Commons Collections и один с использованием только стандартного Java 7 SDK.

В следующих примерах рассмотрим следующие коллекции:

Collection<String> collectionA = Arrays.asList("S", "T");
Collection<String> collectionB = Arrays.asList("U", "V");

2. Использование потокового API Java 8

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

1. Обзор

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

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

2. Пример

Предположим, у нас есть следующие 3 списка:

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

1. Обзор

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

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

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

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

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

1. Введение

Набор — это удобный способ представить уникальную коллекцию предметов.

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

2. Немного теории множеств

2.1. Что такое набор?

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

1. Введение

Мы часто хотим преобразовать Java Stream в коллекцию. Обычно это приводит к изменяемой коллекции, но мы можем настроить ее.

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

2. Использование стандартной Java

2.1. Использование toUnmodifiedList в Java

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

1. Обзор

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

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

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

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

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

1. Обзор

В этом кратком руководстве мы узнаем о двух методах Collection , которые, казалось бы, делают одно и то же, но это не так: clear() и removeAll() .

Сначала мы рассмотрим определения методов, а затем используем их в коротких примерах.

2. Коллекция.очистить()

Сначала мы погрузимся в метод Collection.clear() . Давайте проверим Javadoc метода . Согласно ему, цель clear() — удалить каждый элемент из списка.

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

1. Введение

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

В структуре данных LIFO элементы вставляются и извлекаются в соответствии с принципом «последним пришел – первым вышел». Это означает, что последний вставленный элемент извлекается первым.

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

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

2. Понимание стеков

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

1. Обзор

В этой статье мы рассмотрим одну из самых полезных конструкций java.util.concurrent для решения проблемы параллельного производителя-потребителя. Мы рассмотрим API интерфейса BlockingQueue и то, как методы этого интерфейса облегчают написание параллельных программ.

Позже в этой статье мы покажем пример простой программы с несколькими потоками-производителями и несколькими потоками-потребителями.

2. Типы блокирующих очередей

Мы можем выделить два типа BlockingQueue :