グアバ–リスト
1. 概要
このチュートリアルでは、work with Lists using the Guava libraryの最も一般的で便利な方法を説明します。
簡単に始めましょう–そしてGuava構文を使用してnewなしでcreating a new ArrayListだけを見てみましょう:
List names = Lists.newArrayList("John", "Adam", "Jane");
2. Listを反転します
まず、次の例のように、Lists.reverse()を使用してreverse a Listを作成しましょう。
@Test
public void whenReverseList_thenReversed() {
List names = Lists.newArrayList("John", "Adam", "Jane");
List reversed = Lists.reverse(names);
assertThat(reversed, contains("Jane", "Adam", "John"));
}
3. StringからCharacterListを生成します
それでは、文字列をCharactersのリストに分割する方法を見てみましょう。
次の例では、Lists.CharactersOf() APIを使用して、String“John”からCharacterListを作成します。
@Test
public void whenCreateCharacterListFromString_thenCreated() {
List chars = Lists.charactersOf("John");
assertEquals(4, chars.size());
assertThat(chars, contains('J', 'o', 'h', 'n'));
}
4. Listを分割する
次へ–partition aListの方法を見てみましょう。
次の例では、Lists.partition()を使用して、それぞれサイズ2の連続したサブリストを取得します。
@Test
public void whenPartitionList_thenPartitioned(){
List names = Lists.newArrayList("John","Jane","Adam","Tom","Viki","Tyler");
List> result = Lists.partition(names, 2);
assertEquals(3, result.size());
assertThat(result.get(0), contains("John", "Jane"));
assertThat(result.get(1), contains("Adam", "Tom"));
assertThat(result.get(2), contains("Viki", "Tyler"));
}
5. Listから重複を削除する
それでは、簡単なトリックを使用して、Listから重複を削除しましょう。
次の例では、要素をSetにコピーしてから、残りの要素からListを作成します。
@Test
public void whenRemoveDuplicatesFromList_thenRemoved() {
List chars = Lists.newArrayList('h','e','l','l','o');
assertEquals(5, chars.size());
List result = ImmutableSet.copyOf(chars).asList();
assertThat(result, contains('h', 'e', 'l', 'o'));
}
6. ListからNull値を削除する
次へ–remove null values from a Listの方法を見てみましょう。
次の例では、非常に便利なIterables.removeIf() APIと、ライブラリ自体によって提供される述語を使用して、すべてのnull値を削除します。
@Test
public void whenRemoveNullFromList_thenRemoved() {
List names = Lists.newArrayList("John", null, "Adam", null, "Jane");
Iterables.removeIf(names, Predicates.isNull());
assertEquals(3, names.size());
assertThat(names, contains("John", "Adam", "Jane"));
}
7. ListをImmutableListに変換します
最後に、ImmutableList.copyOf() APIを使用してList –ImmutableList –の不変コピーを作成する方法を見てみましょう。
@Test
public void whenCreateImmutableList_thenCreated() {
List names = Lists.newArrayList("John", "Adam", "Jane");
names.add("Tom");
assertEquals(4, names.size());
ImmutableList immutable = ImmutableList.copyOf(names);
assertThat(immutable, contains("John", "Adam", "Jane", "Tom"));
}
8. 結論
そして、ここにあります-Guavaを使用してListsで実行できる便利な機能のほとんどを説明する簡単なチュートリアルです。
リストをさらに掘り下げるには、リストのthe Predicates and Functions guideと、グアバの詳細なguide to Joining and Splitting listsを確認してください。
これらすべての例とコードスニペットcan be found in my Guava github projectの実装–これはEclipseベースのプロジェクトであるため、そのままインポートして実行するのは簡単です。