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

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

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

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

1. Введение

LinkedBlockingQueue и ConcurrentLinkedQueue — две наиболее часто используемые параллельные очереди в Java . Хотя обе очереди часто используются в качестве параллельной структуры данных, между ними существуют тонкие характеристики и различия в поведении.

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

2. Связанная очередь блокировки

LinkedBlockingQueue — это необязательно ограниченная реализация очереди блокировки, что означает, что при необходимости можно указать размер очереди. ``

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

1. Обзор

Разница между Map и HashMap в том, что первый — это интерфейс, а второй — реализация . Однако в этой статье мы копнем немного глубже и объясним, чем полезны интерфейсы. Кроме того, мы узнаем, как сделать код более гибким с помощью интерфейсов и почему у нас есть разные реализации для одного и того же интерфейса.

2. Назначение интерфейсов

Интерфейс — это контракт, определяющий только поведение. Каждый класс, реализующий определенный интерфейс, должен выполнять этот контракт. Чтобы лучше понять это, мы можем взять пример из реальной жизни. Представьте себе машину. У каждого человека в голове будет свой образ. Термин автомобиль подразумевает некоторые качества и поведение. Любой предмет, обладающий этими качествами, можно назвать автомобилем. Именно поэтому каждый из нас представлял себе разную машину.

Интерфейсы работают одинаково. Карта — это абстракция, определяющая определенные качества и поведение. Картой может быть только класс, обладающий всеми этими качествами . ``

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

1. Обзор

В этом руководстве мы обсудим, как использовать встроенные классы Java, сторонние библиотеки и нашу пользовательскую реализацию для создания объекта Entry , представляющего ассоциацию ключ-значение в Map .

2. Использование встроенных классов Java

Java предоставляет Map . Интерфейс Entry с двумя простыми реализациями для создания Entry . Давайте посмотрим на них.

2.1. Использование Абстрактной карты . Простой ввод

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

1. Обзор

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

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

2. Использование коллекций Java

Мы можем создать пустую карту , используя метод emptyMap() , предоставляемый модулем Java Collections. Это сформирует пустую карту , сериализуемую по своей природе. Этот метод был представлен в Java 1.5 в библиотеке коллекций. Это создаст неизменяемую карту :

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

1. Обзор

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

2. Когда возникает исключение ArrayIndexOutOfBoundsException ?

Как известно, в Java массив — это статическая структура данных, и мы определяем его размер в момент создания.

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

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

1. Обзор

В этом кратком руководстве мы представим различные методы инициализации HashSet со значениями во время его создания.

Чтобы вместо этого изучить возможности HashSet , обратитесь к этой основной статье здесь .

Мы рассмотрим встроенные методы Java начиная с Java 5 и ранее , а затем рассмотрим новые механизмы, представленные начиная с Java 8.

Мы также увидим пользовательский служебный метод и, наконец, изучим функции, предоставляемые сторонними библиотеками коллекций , в частности Google Guava.

Если мы уже перешли на JDK9+, мы можем просто использовать методы фабрики коллекций.

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

1. Обзор

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

2. Thread Safe HashSet с использованием фабричного метода ConcurrentHashMap

Во-первых, мы рассмотрим класс ConcurrentHashMap , который предоставляет статический метод newKeySet() . По сути, этот метод возвращает экземпляр, который соответствует интерфейсу java.util.Set и позволяет использовать стандартные методы, такие как add(), contains() и т. д.

Это может быть создано просто как:

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

1. Обзор

В этом руководстве мы сравним две библиотеки с открытым исходным кодом на основе Java: Apache Commons и Google Guava . Обе библиотеки имеют богатый набор функций с множеством служебных API, в основном в области коллекций и ввода-вывода.

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

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

2. Краткая история двух библиотек

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

1. Обзор

В этой статье мы рассмотрим одну из реализаций Map из библиотеки Google Guava — Multimap . Это коллекция, которая сопоставляет ключи со значениями, подобно java.util.Map , но в которой каждый ключ может быть связан с несколькими значениями.

2. Зависимость от Maven

Сначала добавим зависимость:

<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>31.0.1-jre</version>
</dependency>

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

1. Обзор

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

Таблица Guava — это коллекция, которая представляет собой таблицу, содержащую строки, столбцы и связанные значения ячеек. Строка и столбец действуют как упорядоченная пара ключей.

2. Таблица Гуавы Google ``

Давайте посмотрим, как использовать класс Table .