Backend
home
📝

stream 예제 코드 8 - 필터링, IntStream

생성일
2025/01/22 10:39
태그
package com.stream9; import java.util.List; import java.util.stream.Collectors; import java.util.stream.IntStream; public class MappingExample { public static void main(String[] args) { // 스트림으로 소수만 포함하는 새로운 리스트로 반환 // 필터링된 새로운 리스트 출력 List<Integer> primeList = IntStream.rangeClosed(1, 1000) .filter(x -> isPrime(x)) // 필터링 .boxed() .collect(Collectors.toList()); // 리스트로 반환 System.out.println(primeList); System.out.println(); // 1부터 5까지의 IntStream 생성.. Double stream 타입으로 변환하고 출력하기 IntStream .range(1, 6) .asDoubleStream() .forEach(v -> System.out.println(v)); // 1부터 5까지의 IntStream 생성.. double 타입으로 변환하고 출력하기 List<Double> doubleList = IntStream .range(1, 6) .asDoubleStream() .boxed() .collect(Collectors.toList()); System.out.println(doubleList); } public static boolean isPrime(int num) { if (num <= 1) { return false; } for (int i = 2; i <= Math.sqrt(num); i++) { if (num % i == 0) { return false; } } return true; } }
Java
복사
package com.stream7; import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; public class StreamFilterExample { public static void main(String[] args) { List<String> nameList = Arrays.asList("우상혁", "황선우", "김우민", "서채현", "신유빈", "우상혁"); // distinct로 중복이 제거되었다! nameList.stream() .distinct() .forEach(n -> System.out.print(n + ", ")); System.out.println(); // filter로 "우"가 들어간 이름만 나온다. nameList.stream() .filter(n -> n.contains("우")) .forEach(n -> System.out.print(n + ", ")); System.out.println(); System.out.println("======================================="); // distinct로 중복된 요소가 제거하고, filter로 "우"가 들어간 이름만 나오게 하기 // nameList.stream() // .distinct() // .filter(n -> n.contains("우")) // .forEach(n -> System.out.print(n + ", ")); // 리스트 형태로 출력됨 List<String> filteredList = nameList .stream() .distinct() .filter(n -> n.contains("우")) .collect(Collectors.toList()); // 리스트 형태로 변환 System.out.println(filteredList); } }
Java
복사
package com.stream7; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.stream.IntStream; import java.util.stream.Stream; public class StreamFilterExample2 { public static void main(String[] args) { // 1부터 1000까지 숫자 생성 IntStream intStream = IntStream.rangeClosed(1, 1000); intStream.forEach(System.out::println); // 스트림으로 소수만 포함하는 새로운 리스트로 반환 // 필터링된 새로운 리스트 출력 IntStream .rangeClosed(1, 1000) .filter(x -> isPrime(x)) .forEach(i -> System.out.print(i + ", ")); } public static boolean isPrime(int num) { if (num <= 1) { return false; } for (int i = 2; i <= Math.sqrt(num); i++) { if (num % i == 0) { return false; } return true; } return false; } }
Java
복사