Hamutaro - Hamtaro 4

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]
    }
}