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

61 запись с тегом "Guava"

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

· 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

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

1. Обзор

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

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

Базовой реализацией RangeMap является TreeRangeMap . Внутри карта использует TreeMap для хранения ключа в виде диапазона и значения в виде любого пользовательского объекта Java.

2. RangeMap Google Guava

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

1. Обзор

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

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

2. Настройка

Во-первых, мы добавим библиотеку Guava в качестве зависимости в pom.xml:

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

1. Обзор

В этой статье мы рассмотрим класс RateLimiter из библиотеки Guava .

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

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

Мы будем использовать библиотеку Guava: