Java Guavaを使用する際のヒントは何ですか?

Susan Sarandon
リリース: 2023-04-14 22:37:04
転載
1383 人が閲覧しました

Guava の概要

Guava は Google がリリースしたオープン ソース ライブラリで、主に文字列処理、集合演算、関数型プログラミング、キャッシュなど、Java 開発で非常に役立つツール クラスと API を提供します。待って。

Strings

Strings は、Guava が提供する文字列ツールのセットで、文字列を処理するための便利なメソッドを多数提供します。 String の主なメソッドは次のとおりです。

  • isNullOrEmpty(String string): 文字列が空か null かを判断します。

  • padEnd(String string, int minLength, char PadChar): 文字列が指定された長さに達するまで、指定された文字を文字列の末尾に埋め込みます。

  • padStart(String string, int minLength, char PadChar): 文字列が指定された長さに達するまで、文字列の先頭に指定された文字を埋め込みます。

  • repeat(String string, int count): 指定された文字列を指定された回数繰り返します。

  • commonPrefix(CharSequence a, CharSequence b): 2 つの文字列の最も長い共通プレフィックスを取得します。

  • commonSuffix(CharSequence a, CharSequence b): 2 つの文字列の最長の共通サフィックスを取得します。

次に、文字列の使用例を示します。

public class StringsDemo { public static void main(String[] args) { // 判断字符串是否为空或null String str1 = null; String str2 = ""; System.out.println(Strings.isNullOrEmpty(str1)); System.out.println(Strings.isNullOrEmpty(str2)); // 在字符串末尾填充指定字符,直到字符串达到指定长度 String str3 = "abc"; String paddedStr1 = Strings.padEnd(str3, 6, '*'); System.out.println(paddedStr1); // 在字符串开头填充指定字符,直到字符串达到指定长度 String str4 = "abc"; String paddedStr2 = Strings.padStart(str4, 6, '*'); System.out.println(paddedStr2); // 重复指定字符串指定次数 String str5 = "abc"; String repeatedStr = Strings.repeat(str5, 3); System.out.println(repeatedStr); // 获取两个字符串的最长公共前缀 String str6 = "abcdefg"; String str7 = "abcdxyz"; String commonPrefix = Strings.commonPrefix(str6, str7); System.out.println(commonPrefix); // 获取两个字符串的最长公共后缀 String str8 = "abcdefg"; String str9 = "xyzdefg"; String commonSuffix = Strings.commonSuffix(str8, str9); System.out.println(commonSuffix); }
ログイン後にコピー

コレクション操作 (コレクション)

Guava は、次のような非常に便利なコレクション操作 API を提供します。 :

1.ImmutableList

不変コレクションは Guava の重要な機能であり、コレクションが変更されないことを保証できるため、同時アクセスの問題を回避できます。 ImmutabelList は不変 List の実装です。サンプル コードは次のとおりです:

List list = Lists.newArrayList("a", "b", "c"); ImmutableList immutableList = ImmutableList.copyOf(list);
ログイン後にコピー

2.Iterables

Iterables クラスには、以下に示すように、コレクションを操作するための便利なメソッドがいくつか用意されています。 ##3.Multimaps

Multimaps は、1 つのキーを複数の値に対応させることができる非常に便利なデータ構造を提供します。サンプル コードは次のとおりです:

Iterable iterable = Lists.newArrayList("a", "b", "c"); // 判断集合是否为空 boolean isEmpty = Iterables.isEmpty(iterable); // 获取第一个元素,如果集合为空返回null String first = Iterables.getFirst(iterable, null); // 获取最后一个元素,如果集合为空返回null String last = Iterables.getLast(iterable, null); // 获取所有符合条件的元素 Iterable filtered = Iterables.filter(iterable, new Predicate() { @Override public boolean apply(String input) { return input.startsWith("a"); } }); // 转换集合类型 List newList = Lists.newArrayList(Iterables.transform(iterable, new Function() { @Override public String apply(String input) { return input + input; } }));
ログイン後にコピー

4.Maps

Maps は、以下に示すように、Map を操作するための便利なメソッドをいくつか提供します。

ListMultimap map = ArrayListMultimap.create(); map.put(1, "a"); map.put(1, "b"); map.put(2, "c"); List values = map.get(1); // 返回[a, b]
ログイン後にコピー

条件チェック (Preconditions)

Preconditions は、Guava によって提供される一連の前提条件チェック ツールであり、これをチェックするためにいくつかのメソッドが提供されています。パラメータが期待どおりかどうか。 Preconditions の主なメソッドは次のとおりです。

  • checkArgument(booleanexpression, String errorMessageTemplate, Object... errorMessageArgs)

    : パラメーターが期待を満たしているかどうかを確認し、スローします。 IllegalArgumentException 例外には、エラー メッセージ テンプレートとプレースホルダーが含まれる場合があります。

  • checkNotNull(Treference, String errorMessageTemplate, Object... errorMessageArgs)

    : パラメーターが null かどうかを確認し、NullPointerException 例外をスローします。これにはエラーが含まれる可能性があります。メッセージ テンプレートとプレースホルダー。

  • checkState(booleanexpression, String errorMessageTemplate, Object... errorMessageArgs)

    : オブジェクトの状態が期待どおりかどうかを確認し、エラーが含まれる可能性がある IllegalStateException 例外をスローします。情報 テンプレートとプレースホルダー。

  • checkElementIndex(int インデックス, int size, String errorMessageTemplate, Object... errorMessageArgs)

    : 添字がコレクションの範囲内にあるかどうかを確認し、 throw IndexOutOfBoundsException 例外には、エラー メッセージ テンプレートとプレースホルダーが含まれる場合があります。

  • checkPositionIndex(intindex, int size, String errorMessageTemplate, Object... errorMessageArgs)

    : 添字がセットの範囲内にあるかどうかを確認し、設定されたサイズと等しい場合は、IndexOutOfBoundsException 例外をスローします。この例外には、エラー メッセージ テンプレートとプレースホルダーが含まれる場合があります。

  • checkPositionIndexes(int start, int end, int size)

    : 開始添字と終了添字がコレクションの範囲内にあるかどうかを確認し、IndexOutOfBoundsException をスローします。例外 。

  • Preconditions の使用例は次のとおりです。
Map map = ImmutableMap.of(1, "a", 2, "b", 3, "c"); // 判断Map是否为空 boolean isEmpty = Maps.isEmpty(map); // 获取Map中的所有键 Set keys = map.keySet(); // 获取Map中的所有值 Collection values = map.values(); // 获取Map中的所有键值对 Set> entries = map.entrySet(); // 根据键获取值,如果不存在则返回null String value = Maps.getIfPresent(map, 1);
ログイン後にコピー

有効期限を設定できるローカル キャッシュ (CacheBuilder)

Cache はキャッシュ ツールですGuava クラスによって提供されており、データをメモリにキャッシュし、プログラムのパフォーマンスを向上させるのに役立ちます。 Cache の主なメソッドは次のとおりです:

    get(K key, Callable valueLoader): 指定されたキーのキャッシュ値を取得します。キャッシュに保存するには、valueLoader を呼び出してデータをロードし、キャッシュに保存します。
  • getIfPresent(Object key): 指定されたキーのキャッシュ値を取得します。キャッシュにない場合は null を返します。
  • getAllPresent(Iterable Keys): 指定されたキーのキャッシュ値を取得します。キャッシュ値がない場合は、null を返します。
  • put(K key, V value): 指定されたキーのキャッシュ値をキャッシュに保存します。
  • putAll(Map m): 指定された Map のキャッシュ値をキャッシュに保存します。
  • invalidate(Object key): 指定されたキーのキャッシュ値をキャッシュから削除します。
  • invalidateAll(Iterable Keys): 指定されたキーのキャッシュ値をキャッシュから削除します。
  • invalidateAll(): キャッシュされたすべての値をキャッシュから削除します。
  • size(): キャッシュにキャッシュされた値の数を取得します。
  • asMap(): キャッシュを Map に変換します。
  • うわー

以上がJava Guavaを使用する際のヒントは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!