728x90
[스트림]
스트림은 Java 8에서 추가된 기능으로 컬렉션 데이터를 선언형으로 쉽게 처리할 수 있다.
복잡한 반복문을 사용하지 않아도 된다.
많은 데이터를 원하는 조건에 따라 1차 필터링, 2차 필터링 ... 원하는 만큼 필터링을 하여 데이터를 가공할 수 있고,
데이터 중 필요한 요소만 꺼내오도록 할 수 있다.
그러기 때문에 데이터 가공이 편리하다는 이점이 있다.
[스트림 생성]
public static void main(String[] args) {
// 스트림 생성
int[] num = {1, 2, 3, 4, 5};
IntStream numStream = Arrays.stream(num);
String[] str = {"A", "B", "C"};
Stream<String> strStream = Arrays.stream(str);
// Collection 스트림 생성
ArryaList<String> list = new ArrayList<>();
list = Arrays.asList("A", "B", "C");
Stream<String> listStream = list.stream();
// Stream.of()
Stream<String> str2 = Stream.of(("A", "B", "C");
}
- Arrays.stream을 사용하여 스트림을 생성할 수 있다.
- Collection도 변수명.stream()을 사용하여 스트림을 생성할 수 있다.
- Stream.of()를 통해 무자열 요소를 포함하는 스트림을 생성할 수 있다.
[스트림 사용]
public static void main(String[] args) {
// 스트림 생성
int[] num = {10, 20, 30, 40, 50};
IntStream numStream = Arrays.stream(num);
// 스트림 사용
// 30 이상만 출력
Arrays.stream(num)
.filter(x -> x >= 30)
.forEach(x -> System.out.println(x));
// 30이상인 수의 개수
int count = (int)Arrays.stream(num)
.filter(x -> x >= 30)
.count(); // count는 long타입
System.out.println(count);
// num 배열 요소의 합
int sum = Arrays.stream(num)
.sum();
System.out.println(sum);
}
정렬 -> .sorted()
특정 글자로 시작 -> .startsWith("문자")
특정 글자 포함 -> .contains("문자")
등의 메소드를 사용하여 데이터를 가공할 수 있다.
추가로 map()을사용하여 문자를 더하거나, 대소문자로 바꾸는 등 다양한 데이터 가공을 할 수 있다.
728x90
'Java' 카테고리의 다른 글
예외처리(try-catch) (0) | 2023.06.14 |
---|---|
박물관 입장료 프로그램 (0) | 2023.06.13 |
함수형 인터페이스 (Functional Interface) (0) | 2023.06.13 |
람다식(Lambda) (0) | 2023.06.13 |
익명 클래스 (0) | 2023.06.13 |