일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 자켓실측
- 핸드캐리쿠리어차이점
- 비슬론지퍼
- 우레탄지퍼
- 암홀트롭
- 엑셀필터복사붙여넣기
- 비리짐
- Armhole Drop
- 40HQ컨테이너
- 고급영어단어
- 클린코드
- 헤이큐
- TACKING
- 엑셀자동서식
- 와끼
- 요척합의
- 필터링후복사붙여넣기
- 40HQ컨테이너40GP컨테이너차이
- 미니마카
- 웹API
- MERN스택
- 영어시간읽기
- 지연환가료
- 미국영어연음
- AATCC
- 슈퍼코딩
- WHATTIMEOFTHEDAY
- 봉제용어
- 나일론지퍼
- 엑셀드래그단축키
- Today
- Total
CASSIE'S BLOG
[슈퍼코딩] 57-1강 stream 사용하여 컬렉션 우아하게 사용하기 본문
컬렉션을 가방에 비유
stream Api란 함수형 프로그래밍 도입하여 컬렉션, 배열 등을 처리/조작을 간단/효율적으로 하는 api
왜 stream api 사용하는가?
For-loop을 함수형 프로그래밍을 통해 가독성 좋게 람다식으로 개선할 수 있다.
퍼포먼스 측에서도 병렬연산이 가능해진단다.
Stream 문법 소개
stream 만드는 방법 (크게 3가지)
1. stream.of()문법
2. Arrays.stream();
3. Collection에서 stream으로 바꾸는
많이 쓰는 방법은 Collection에서 stream으로 바꾸는 걸 많이 한다.
1. of를 이용해서 array처럼 바로 초기화해서 사용 가능
2. Array에 있는 것을 Array에 넣어서 stream을 만들 수 있다.
Arrays.stream(new String[]{“Apple”, “Banana”, “Orange”});
3. 이렇게 하는데?
List<String> fruits = new ArrayList<>();
fruits.add(“Apple”);
fruits.add(“Banana”);
Stream<String> fruitStream3 = fruits.stream();
실습
1. Stream Api 만들어보기(Stream.of(), Arrays.stream(), collection.stream();)
2. 간단한 for loop를 stream으로 개선하기
Stream은 제네릭 이기 때문에 타입을 설정해줘야한다.
그리고 따로 util의 Stream를 import해줘야함
Stream<String> fruits = Stream.of(“apple”, “banana”, “orange”);
Arrays안에 array정의 해줘야함
Stream<String> fruits2 = Arrays.stream(new String[]{“apple”, “banana”});
3번
구현체는ArrayList와 노드구조인 LinkedList 보통의 경우에는 ArrayList가 더 유리하긴 하다.
이거는 한개씩 한개씩 add를 해줘야한다고 함
//Collection
List<String> fruits3 = new ArrayList<>();
fruits3.add(“apple”);
List<Integer> integerList = new ArrayList<>();
integerList.add(1);
integerList.add(2);
integerList.add(3);
integerList.add(4);
integerList.add(5);
integerList.add(6);
integerList.add(7);
integerList.add(8);
integerList.add(9);
integerList.add(10);
Stream<Integer> integerStream3 = integerList.stream(); //Integer의 Stream으로 함
// Collection
List<String> fruitsList = new ArrayList<>();
fruitsList.add("Apple");
fruitsList.add("Banana");
fruitsList.add("Orange");
fruitsList.add("Mango");
fruitsList.add("Grapes");
Stream<String> fruit3 = fruitsList.stream();
// Stream 가지고 For-loop을 표현하는 법
for(String fruit: fruitsList){
System.out.println("for-loop로 fruit 산출: " + fruit.toUpperCase());
}
String fruit는 for-loop에서 사용되는 변수입니다. 이 변수는 fruitsList라는 리스트의 각 요소를 대표합니다. 각 반복(iteration)에서 fruit 변수는 리스트에서 다음 요소로 업데이트되며, 반복할 때마다 현재 요소에 대한 작업을 수행할 수 있습니다.
즉, for (String fruit : fruitsList) 구문은 fruitsList에 있는 각 과일 요소에 대해 반복하면서 현재 과일 요소를 fruit 변수에 할당하고, 이를 통해 반복문 안에서 해당 과일에 대한 작업을 수행합니다. 코드에서는 각 과일을 대문자로 변환하여 출력하고 있습니다.
//Stream 을 이용해서 forEach
이건 람다식
() ->
이런 틀로 사용하면 됨
이부분은 forEach()
// Stream
fruit3.forEach( (fruit) -> System.out.println("forEach로 fruit 산출: " + fruit.toUpperCase() ));
'PROGRAMMING > 슈퍼코딩 강의 정리' 카테고리의 다른 글
[슈퍼코딩] 57-2강 stream 사용하여 컬렉션 우아하게 사용하기 (0) | 2023.12.16 |
---|---|
[슈퍼코딩] 2차 협업 프로젝트 (0) | 2023.12.16 |
[슈퍼코딩] 56강 함수형 프로그래밍과 람다식 (0) | 2023.12.15 |
[슈퍼코딩] 54강 강력한 데이터 관리(2) (0) | 2023.12.15 |
[슈퍼코딩] 55강 내부클래스와 유틸클래스 (0) | 2023.12.15 |