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

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

1. Обзор

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

BiMap ( или «двунаправленная карта») — это особый тип карты, который поддерживает инверсное представление карты, гарантируя отсутствие повторяющихся значений и всегда можно безопасно использовать значение для возврата ключа.

Базовой реализацией BiMap является HashBiMap , где внутренне он использует два Map , один для сопоставления ключа со значением, а другой для сопоставления значения с ключом.

2. BiMap Google Guava

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

1. Введение

В этой статье мы познакомимся с Guava CacheLoader .

Прежде чем читать дальше, рекомендуется сначала получить общее представление о классе LoadingCache . Это потому, что CacheLoader работает именно с ним.

По сути, CacheLoader — это функция, используемая для вычисления значения в случае, если оно не найдено в Guava LoadingCache .

2. Использование CacheLoader с LoadingCache

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

1. Обзор

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

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

2. Подсчет выходного потока

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

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

1. Обзор

ClassToInstanceMap <B> — это карта особого типа, которая связывает классы с соответствующими экземплярами. Он гарантирует, что все ключи и значения являются подтипами верхней границы типа B.

ClassToInstanceMap расширяет интерфейс карты Java и предоставляет два дополнительных метода: T getInstance(Class<T>) и T putInstance(Class<T>, T). Преимущество этой карты в том, что эти два метода можно использовать для выполнения операций с типобезопасностью и предотвращения приведения.

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

2. Карта ClassToInstanceMap от Google Guava

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

1. Обзор

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

2. Настройка

Для начала мы добавляем зависимость библиотеки Google Guava в pom.xml:

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

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

1. Введение

MapMaker — это класс-строитель в Guava, который упрощает создание потокобезопасных карт.

Java уже поддерживает WeakHashMap для использования слабых ссылок для ключей. Но нет готового решения, чтобы использовать то же самое для значений. К счастью, MapMaker предоставляет простые методы построения для использования WeakReference как для ключей, так и для значений .

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

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

· 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>

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

1. Обзор

В этом уроке мы рассмотрим одну из коллекций Guava — Multiset . Как и java.util.Set , он позволяет эффективно хранить и извлекать элементы без гарантированного порядка.

Однако, в отличие от Set , он допускает несколько вхождений одного и того же элемента , отслеживая количество каждого уникального элемента, который он содержит.

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

Во-первых, давайте добавим зависимость guava :

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

1. Обзор

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

Класс Preconditions предоставляет список статических методов для проверки того, вызывается ли метод или конструктор с допустимыми значениями параметров. Если предварительное условие не выполняется, генерируется адаптированное исключение.

2. Предварительные условия Google Guava ``

Каждый статический метод в классе Preconditions имеет три варианта:

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

1. Обзор

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

RangeSet — это набор, состоящий из нуля или более непустых несвязанных диапазонов. При добавлении диапазона в изменяемый RangeSet все связанные диапазоны объединяются, а пустые диапазоны игнорируются.

Базовой реализацией RangeSet является TreeRangeSet .

2. RangeSet Google Guava