Backend/Java

[Java] 슀트림의 filter()둜 μ›ν•˜λŠ” 쑰건의 데이터 ν•„ν„°λ§ν•˜κΈ°

carsumin 2024. 9. 9. 21:06
stream()
  • Java8λΆ€ν„° λ„μž…
  • μŠ€νŠΈλ¦Όμ„ μ²˜λ¦¬ν•  수 μžˆλ„λ‘ 지원
  • μ»¬λ ‰μ…˜, λ°°μ—΄, 파일의 데이터 등을 ν•¨μˆ˜ν˜• λ°©μ‹μœΌλ‘œ μ²˜λ¦¬ν•  수 있게 함
import java.util.Arrays;
import java.util.List;

public class StreamExample {
	public static void main(String[] args){
    	List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
        
        //stream 생성 및 쀑간 μ—°μ‚°, μ΅œμ’… μ—°μ‚°
        names.stream()
             .filter(name -> name.startsWith("A")) // 'A'둜 μ‹œμž‘ν•˜λŠ” 이름 필터링
             .map(name -> name.toUpperCase()) // λŒ€λ¬Έμžλ‘œ λ³€ν™˜
             .forEach(name -> System.out.println(name)); // 좜λ ₯ : ALICE
    }
}

 

filter()
  • Java의 슀트림 API μ—μ„œ νŠΉμ • 쑰건을 λ§Œμ‘±ν•˜λŠ” μš”μ†Œλ“€λ§Œ 필터링
  • 쑰건을 λ§Œμ‘±ν•˜λŠ” μš”μ†Œλ“€λ‘œ μƒˆλ‘œμš΄ μŠ€νŠΈλ¦Όμ„ λ§Œλ“€μ–΄ λ°˜ν™˜
  • λ‹€μ–‘ν•œ μžλ£Œκ΅¬μ‘°μ—μ„œ μ‚¬μš© κ°€λŠ₯
//μ‚¬μš©λ²•
stream.filter(쑰건식)

 

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

public class StreamFilterExample {
    public static void main(String[] args) {
        List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);

        // 짝수만 필터링
        List<Integer> evenNumbers = numbers.stream()
                                           .filter(n -> n % 2 == 0)
                                           .toList(); // Java 16+μ—μ„œ μ‚¬μš© κ°€λŠ₯
        
        System.out.println(evenNumbers); // 좜λ ₯: [2, 4, 6, 8, 10]
    }
}