0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

コレクションを操作するメソッドの使い方

Posted at

コレクションを操作するメソッドの使い方

コレクションを操作する下記のメソッド使い方をListを使用して確認してみようと思います。

  • ArrayList.add(? e)
    引数の値を新しい要素としてリストの最後に追加します。

  • ArrayList.get(int i)
    引数の値のインデックスの要素を返します。

  • ArrayList.indexOf(? e)
    引数と一致する要素がリストに含まれていないかインデックス0から順番に確認し、一致した要素があればインデックスを返します。
    一致する要素がない場合は-1を返します。

  • ArrayList.removeAll(ArryList<?> e)

引数のリストの要素と一致する要素を削除します。

  • ArrayList.removeIf(Predicate<? super E> filter)
    指定された条件を満たす要素を削除します。

  • ArrayList.replaceAll(UnaryOperator<E> operator)
    指定された処理を行い、リストに返します。

  • ArrayList.sort(Comparator<? super E> c)
    コンパレーターに従いリストの要素を並び替えます。

  • forEach(Consumer<? super E> action)
    全ての要素を順番に引数にして指定された処理を行います。
    ※戻り値は存在しないのでリストの中身は変更されません。

実際に利用してみたコードがこちらになります。

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class Main {
	public static void main(String[] args) {
		List<Integer> addList = new ArrayList<>(Arrays.asList(1,2,3,4,5,6,7,8,9,10));
		addList.add(11);
		System.out.println("add(11)");
		System.out.println(addList);

		List<Integer> getList = new ArrayList<>(Arrays.asList(1,2,3,4,5,6,7,8,9,10));
		System.out.println("get(5)");
		System.out.println(getList.get(5));

		List<Integer> indexOftList = new ArrayList<>(Arrays.asList(1,2,3,4,5,6,7,8,9,10));
		System.out.println("indexOf(6)");
		System.out.println(indexOftList.indexOf(6));

		List<Integer> removeAllList = new ArrayList<>(Arrays.asList(1,2,3,4,5,6,7,8,9,10));
		removeAllList.removeAll(new ArrayList<Integer>(Arrays.asList(1,3,4,5)));
		System.out.println("removeAll(new ArrayList<Integer>(Arrays.asList(1,3,4,5))");
		System.out.println(removeAllList);

		List<Integer> removeIfList = new ArrayList<>(Arrays.asList(1,2,3,4,5,6,7,8,9,10));
		removeIfList.removeIf( i -> i % 2 == 0);
		System.out.println("removeIf( i -> i % 2 == 0)");
		System.out.println(removeIfList);

		List<Integer> replaceAllList = new ArrayList<>(Arrays.asList(1,2,3,4,5,6,7,8,9,10));
		replaceAllList.replaceAll(i -> i * 2 );
		System.out.println("replaceAll(i -> i * 2 )");
		System.out.println(replaceAllList);

		List<Integer> sortList = new ArrayList<>(Arrays.asList(1,2,3,4,5,6,7,8,9,10));
		sortList.sort((Integer i,Integer j) -> j.compareTo(i));
		System.out.println("sort((Integer i,Integer j) -> j.compareTo(i))");
		System.out.println(sortList);

		List<Integer> forEachList = new ArrayList<>(Arrays.asList(1,2,3,4,5,6,7,8,9,10));
		System.out.println("forEach(i -> System.out.print(i + " ") )");
		forEachList.forEach(i -> System.out.print(i + " ") );
	}
}

実行結果

add(11)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
get(5)
6
indexOf(6)
5
removeAll(new ArrayList<Integer>(Arrays.asList(1,3,4,5))
[2, 6, 7, 8, 9, 10]
removeIf( i -> i % 2 == 0)
[1, 3, 5, 7, 9]
replaceAll(i -> i * 2 )
[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
sort((Integer i,Integer j) -> j.compareTo(i))
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
forEach(i -> System.out.print(i + " ") )
1 2 3 4 5 6 7 8 9 10 

解説

宣言時は全てのリストのパラメータがIntegerに設定されており、要素は1~10の数値になっています。

  1. addList
    add(11)によって11がリストの要素に加わっています。
  2. getList
    get(5)によってインデックスが5の要素6が返ってきています。
    ※インデックスは0から数えるため
  3. indexOftList
    indexOf(6)によって引数(6)と一致する要素のインデックス5が返ってきています。
    ※インデックスは0から数えるため
  4. removeAllList
    removeAll(new ArrayList(Arrays.asList(1,3,4,5))の引数で渡されたListに含まれる要素と一致している要素(1,3,4,5)を削除しています。
  5. removeIfList
    removeIfメソッドを利用して、偶数の要素を削除しています。
  6. replaceList
    全ての要素を二倍にしてリストに返しています。
  7. replaceAllList
    降順に並び替える様に設定したコンパレーターを作成し、コンパレーターを利用してリストを並び替えています。
  8. forEachList
    要素を一つずつ受け取り、System.out.printによってコンソールに表示させています。

まとめ

コレクションを操作するメソッドはjava.utilパッケージに多数用意されており、自分の目的に合ったメソッドを利用する事でだいたいの処理は作成できる。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?