リストの要素の中で特定の条件を満たさない要素は、リストでフィルタリングする方法を紹介します。
1. List.removeIf() を使った方法
removeIf()
は引数としてラムダ式を受け取り、リストのすべての要素に対して条件を満たせばリストから要素を削除します。
以下の例では、リストには正と負の数があり、 removeIf()
で負の数を削除しました。
この方法は元のリストが変更されるという特徴があります。元のリストを保存する必要がある場合、この方法は使用できません。
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Example {
public static void main(String[] args) {
List<Integer> list = new ArrayList<>(Arrays.asList(-2, -1, 0, 1, 2));
list.removeIf((n) -> n < 0);
System.out.println(list);
}
}
Output:
[0, 1, 2]
2. for文を利用した方法
以下のように、繰り返しステートメントを使用してリスト内のすべての要素を巡回しながら、条件に一致する要素のみを新しいリストに保存できます。
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Example1 {
public static void main(String[] args) {
List<Integer> list = new ArrayList<>(Arrays.asList(-2, -1, 0, 1, 2));
List<Integer> filtered = new ArrayList<>();
for (Integer n : list) {
if (n >= 0) {
filtered.add(n);
}
}
System.out.println(filtered);
}
}
Output:
[0, 1, 2]
3. Streamを利用した方法
forステートメントと同じように、Streamを使用して要素をフィルタリングして新しいリストに保存できます。ストリームで filter()
と collect()
を使用します。
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class Example2 {
public static void main(String[] args) {
List<Integer> list = new ArrayList<>(Arrays.asList(-2, -1, 0, 1, 2));
List<Integer> filtered = list.stream()
.filter((n) -> n >= 0)
.collect(Collectors.toList());
System.out.println(filtered);
}
}
Output:
[0, 1, 2]
Related Posts
- Java - BufferedReaderでファイルを読む
- Java - BufferedWriterでファイルを書き込む
- Java - BigIntegerの範囲、比較、演算、キャスト
- Java charAt()関数を学ぶ
- Java contains()で文字(大文字と小文字のX)を含める
- Java - Set(HashSet)を配列に変換する
- Java - 文字列の最初の文字、最後の文字を確認する
- Java - 文字列を1文字ずつ切り捨てる
- Java - 文字列の単語数を取得する
- Java - 1秒ごとに繰り返し実行
- Java - 配列をSet(HashSet)に変換する
- Java - 複数のSet(HashSet)を組み合わせる
- Java - コマンドライン引数の入力を受け取る
- Java - リスト逆順に巡回、3つの方法
- Java - 特定の条件でリストをフィルタリングする3つの方法
- Java - HashMapすべての要素の合計、平均計算
- Java - 特定の条件でHashMapをフィルタリングする
- Java - シングルトンパターンの実装
- Java - 数字の左側にゼロを埋める
- Java - String配列の初期化方法
- Java - ソートされた順序で Map(HashMap) 巡回