グアバ - リスト

グアバ–リスト

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. ListImmutableListに変換します

最後に、ImmutableList.copyOf() APIを使用してListImmutableList –の不変コピーを作成する方法を見てみましょう。

@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ベースのプロジェクトであるため、そのままインポートして実行するのは簡単です。