Notice
Recent Posts
Recent Comments
Link
SeouliteLab
[Java/자바] 람다식과 filter() 메서드 활용하기 본문
자바에서는 람다식과 함께 filter() 메서드를 사용하여 컬렉션의 요소를 조건에 맞게 필터링할 수 있습니다. 이를 통해 코드의 가독성과 효율성을 높일 수 있습니다. 아래에서는 람다식과 filter() 메서드를 활용한 여러 예제를 살펴보겠습니다.
1. 리스트에서 짝수만 필터링하기
람다식과 filter() 메서드를 사용하여 리스트에서 짝수만 필터링하는 예제입니다.
import java.util.ArrayList;
import java.util.List;
public class FilterExample {
public static void main(String[] args) {
List numbers = new ArrayList<>();
numbers.add(1);
numbers.add(2);
numbers.add(3);
numbers.add(4);
numbers.add(5);
// 짝수만 필터링
List evenNumbers = numbers.stream()
.filter(num -> num % 2 == 0)
.collect(Collectors.toList());
System.out.println("짝수만 필터링 결과: " + evenNumbers);
}
}
2. 문자열 리스트에서 길이가 3 이상인 요소만 필터링하기
람다식과 filter() 메서드를 사용하여 문자열 리스트에서 길이가 3 이상인 요소만 필터링하는 예제입니다.
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
public class FilterExample {
public static void main(String[] args) {
List strings = new ArrayList<>();
strings.add("apple");
strings.add("banana");
strings.add("orange");
strings.add("kiwi");
// 길이가 3 이상인 문자열만 필터링
List filteredStrings = strings.stream()
.filter(str -> str.length() >= 3)
.collect(Collectors.toList());
System.out.println("길이가 3 이상인 문자열 필터링 결과: " + filteredStrings);
}
}
3. 객체 리스트에서 특정 조건을 만족하는 요소 필터링하기
람다식과 filter() 메서드를 사용하여 객체 리스트에서 특정 조건을 만족하는 요소만 필터링하는 예제입니다.
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public int getAge() {
return age;
}
}
public class FilterExample {
public static void main(String[] args) {
List people = new ArrayList<>();
people.add(new Person("Alice", 25));
people.add(new Person("Bob", 30));
people.add(new Person("Charlie", 20));
// 나이가 25 이상인 사람만 필터링
List filteredPeople = people.stream()
.filter(person -> person.getAge() >= 25)
.collect(Collectors.toList());
System.out.println("나이가 25 이상인 사람 필터링 결과: " + filteredPeople);
}
}
4. 배열에서 특정 조건을 만족하는 요소 필터링하기
람다식과 filter() 메서드를 사용하여 배열에서 특정 조건을 만족하는 요소만 필터링하는 예제입니다.
import java.util.Arrays;
public class FilterExample {
public static void main(String[] args) {
int[] numbers = {1, 2, 3, 4, 5};
// 짝수만 필터링
int[] evenNumbers = Arrays.stream(numbers)
.filter(num -> num % 2 == 0)
.toArray();
System.out.println("짝수만 필터링 결과: " + Arrays.toString(evenNumbers));
}
}
5. 스트림에서 null 제외하고 필터링하기
람다식과 filter() 메서드를 사용하여 스트림에서 null 값을 제외하고 필터링하는 예제입니다.
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class FilterExample {
public static void main(String[] args) {
List strings = Arrays.asList("apple", null, "banana", null, "orange");
// null이 아닌 값만 필터링
List nonNullStrings = strings.stream()
.filter(str -> str != null)
.collect(Collectors.toList());
System.out.println("null 제외한 문자열 필터링 결과: " + nonNullStrings);
}
}
6. Stream API를 활용한 복 잡한 조건의 필터링
람다식과 filter() 메서드를 사용하여 스트림에서 복잡한 조건의 필터링을 수행하는 예제입니다.
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class FilterExample {
public static void main(String[] args) {
List numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
// 짝수이면서 5보다 큰 값을 필터링
List result = numbers.stream()
.filter(num -> num % 2 == 0 && num > 5)
.collect(Collectors.toList());
System.out.println("짝수이면서 5보다 큰 값 필터링 결과: " + result);
}
}
'프로그래밍' 카테고리의 다른 글
[Java/자바] 람다식과 flatMap() 메서드 활용하기 (0) | 2024.03.08 |
---|---|
[Java/자바] 람다식과 map() 메서드 활용하기 (0) | 2024.03.08 |
[Java/자바] 람다식과 익명 함수의 차이점 (0) | 2024.03.08 |
[Java/자바] 반복문 종류와 예제 코드 (0) | 2024.03.08 |
[Java/자바] do-while과 while 루프의 차이점 (0) | 2024.03.08 |