Guava は Google がリリースしたオープン ソース ライブラリで、主に文字列処理、集合演算、関数型プログラミング、キャッシュなど、Java 開発で非常に役立つツール クラスと API を提供します。待って。
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<String> list = Lists.newArrayList("a", "b", "c"); ImmutableList<String> immutableList = ImmutableList.copyOf(list);
2.Iterables
Iterables クラスには、以下に示すように、コレクションを操作するための便利なメソッドがいくつか用意されています。 ##3.Multimaps
Multimaps は、1 つのキーを複数の値に対応させることができる非常に便利なデータ構造を提供します。サンプル コードは次のとおりです:
Iterable<String> 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<String> filtered = Iterables.filter(iterable, new Predicate<String>() { @Override public boolean apply(String input) { return input.startsWith("a"); } }); // 转换集合类型 List<String> newList = Lists.newArrayList(Iterables.transform(iterable, new Function<String, String>() { @Override public String apply(String input) { return input + input; } }));
4.Maps
Maps は、以下に示すように、Map を操作するための便利なメソッドをいくつか提供します。
ListMultimap<Integer, String> map = ArrayListMultimap.create(); map.put(1, "a"); map.put(1, "b"); map.put(2, "c"); List<String> values = map.get(1); // 返回[a, b]
条件チェック (Preconditions)
: パラメーターが期待を満たしているかどうかを確認し、スローします。 IllegalArgumentException 例外には、エラー メッセージ テンプレートとプレースホルダーが含まれる場合があります。
: パラメーターが null かどうかを確認し、NullPointerException 例外をスローします。これにはエラーが含まれる可能性があります。メッセージ テンプレートとプレースホルダー。
: オブジェクトの状態が期待どおりかどうかを確認し、エラーが含まれる可能性がある IllegalStateException 例外をスローします。情報 テンプレートとプレースホルダー。
: 添字がコレクションの範囲内にあるかどうかを確認し、 throw IndexOutOfBoundsException 例外には、エラー メッセージ テンプレートとプレースホルダーが含まれる場合があります。
: 添字がセットの範囲内にあるかどうかを確認し、設定されたサイズと等しい場合は、IndexOutOfBoundsException 例外をスローします。この例外には、エラー メッセージ テンプレートとプレースホルダーが含まれる場合があります。
: 開始添字と終了添字がコレクションの範囲内にあるかどうかを確認し、IndexOutOfBoundsException をスローします。例外 。
Map<Integer, String> map = ImmutableMap.of(1, "a", 2, "b", 3, "c"); // 判断Map是否为空 boolean isEmpty = Maps.isEmpty(map); // 获取Map中的所有键 Set<Integer> keys = map.keySet(); // 获取Map中的所有值 Collection<String> values = map.values(); // 获取Map中的所有键值对 Set<Map.Entry<Integer, String>> entries = map.entrySet(); // 根据键获取值,如果不存在则返回null String value = Maps.getIfPresent(map, 1);
有効期限を設定できるローカル キャッシュ (CacheBuilder)
以上がJava Guavaを使用する際のヒントは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。