Javaのfilterメソッドの使い方を学ぼう!
Javaのfilterメソッドは、リストから条件に一致する要素を取り出すために使われます。ここでは、3つの例を使ってfilterメソッドの使い方を紹介し、それぞれの例でfilterメソッドを使用した場合と使用しない場合を比較します。
例1: 文字列リストから特定の文字を含む要素を取り出す
まずは、List
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
import java.util.List; import java.util.stream.Collectors; public class Program { public static void main(String[] args) { List<String> words = List.of("apple", "banana", "cherry", "date", "fig", "grape"); List<String> fruitsWithA = words.stream() .filter(word -> word.contains("a")) .collect(Collectors.toList()); System.out.println(fruitsWithA); } } |
出力結果
[apple, banana, date, grape]
サルモリ
ほら、'a' を含む果物だけがリストに含まれてるよ!
filterメソッドを使わない場合は以下のようになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
import java.util.ArrayList; import java.util.List; public class Program { public static void main(String[] args) { List<String> words = List.of("apple", "banana", "cherry", "date", "fig", "grape"); List<String> fruitsWithA = new ArrayList<>(); for (String word : words) { if (word.contains("a")) { fruitsWithA.add(word); } } System.out.println(fruitsWithA); } } |
出力結果
[apple, banana, date, grape]
サルモリ
これでも同じ結果が得られるけど、filterメソッドを使う方がコードがシンプルだね!
Java言語のStreamAPIを徹底的に学びたい方は画像をクリックしてご覧ください!
KindleUnlimited会員であれば、全ての本をご覧頂けます。 StreamAPIを理解すれば、Javaの世界が変わる 第1版
KindleUnlimited会員であれば、全ての本をご覧頂けます。 StreamAPIを理解すれば、Javaの世界が変わる 第1版
例2: 数値リストから偶数の要素を取り出す
次に、List
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
import java.util.List; import java.util.stream.Collectors; public class Program { public static void main(String[] args) { List<Integer> numbers = List.of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); List<Integer> evenNumbers = numbers.stream() .filter(number -> number % 2 == 0) .collect(Collectors.toList()); System.out.println(evenNumbers); } } |
出力結果
[2, 4, 6, 8, 10]
サルモリ
すごいね、偶数だけがリストに含まれているよ!
filterメソッドを使わない場合は以下のようになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
import java.util.ArrayList; import java.util.List; public class Program { public static void main(String[] args) { List<Integer> numbers = List.of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); List<Integer> evenNumbers = new ArrayList<>(); for (int number : numbers) { if (number % 2 == 0) { evenNumbers.add(number); } } System.out.println(evenNumbers); } } |
出力結果
[2, 4, 6, 8, 10]
サルモリ
これでも同じ結果だけど、やっぱりfilterメソッドを使う方がコードが短くてわかりやすいね!
例3: オブジェクトリストから特定の条件に合致する要素を取り出す
最後に、List
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
import java.util.List; import java.util.stream.Collectors; class Person { String name; int age; Person(String name, int age) { this.name = name; this.age = age; } @Override public String toString() { return name + ": " + age; } } public class Program { public static void main(String[] args) { List<Person> people = List.of( new Person("Alice", 20), new Person("Bob", 17), new Person("Carol", 22), new Person("David", 15)); List<Person> adults = people.stream() .filter(person -> person.age >= 18) .collect(Collectors.toList()); System.out.println(adults); } } |
出力結果
[Alice: 20, Carol: 22]
サルモリ
年齢が18歳以上の人だけがリストに含まれているよ!
filterメソッドを使わない場合は以下のようになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
import java.util.ArrayList; import java.util.List; class Person { String name; int age; Person(String name, int age) { this.name = name; this.age = age; } @Override public String toString() { return name + ": " + age; } } public class Program { public static void main(String[] args) { List<Person> people = List.of( new Person("Alice", 20), new Person("Bob", 17), new Person("Carol", 22), new Person("David", 15)); List<Person> adults = new ArrayList<>(); for (Person person : people) { if (person.age >= 18) { adults.add(person); } } System.out.println(adults); } } |
出力結果
[Alice: 20, Carol: 22]
サルモリ
これでも同じ結果になるけど、filterメソッドを使った方がコードがすっきりしているね!
以上で、Javaのfilterメソッドの使い方を3つの例で紹介しました。filterメソッドを使うことで、条件に一致する要素を取り出す処理がシンプルに書けることがわかりました。ぜひ、日常のコーディングに活用してみてください。
まとめ
Javaのfilterメソッドの使い方を3つの例を通じて紹介しました。
- 数値リストから奇数のみを抽出
- 文字列リストから特定の文字列を含む要素を抽出
- オブジェクトリストから特定の条件を満たす要素を抽出
filterメソッドを使うことで、リストから条件に一致する要素を効率的に取り出すことができます。コードがシンプルになり、可読性も向上するため、リストの処理を行う際に活用してみてください。