Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 자바초보
- 데이터베이스 기초
- IdeaPad 3 15ABA7
- 레노버 노트북
- 데이터베이스기초
- 코린이
- 슬림3
- 오라클UPDATE
- 데이터베이스 JOIN
- 데이터베이스 예제
- 레노버 슬림3
- 오라클 DELETE
- 티모장인
- 자바입문
- 가성비 노트북
- 데이터베이스 UPDATE
- 레노버 아이디어패드 슬림3
- 데이터베이스 DELETE
- 개발자준비
- 데이터베이스
- 데이터베이스 집합연산자
- 라이젠노트북
- 탑마이장인
- 코딩입문
- SQL
- lenovo ideapad 3
- 코딩일기
- 사무용 노트북
- 오라클
- 코딩초보자
Archives
- Today
- Total
스퐁지송 개발노트
22.12.05(월) 스트림 본문
728x90
컬렉션 프레임워크(배열)
컬렉션 프레임워크(배열) 의 각각의 요소를 하나씩 참조해서 람다식으로 처리
표준화를 하기위해 사용
-원본을 변경하지 않음
-for => 외부반복이라함 / 스트림 => 내부반복을 함
-재사용 불가
-병렬 처리 지원
처리순서
1.생성
2.가공(중개 연산 - 변환작업)
3.결과
예시
package 스트림;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<String> list = Arrays.asList(new String[] { "홍", "김", "이", "유" });
//컬랙션 프레임위크 생성
int i=0;
System.out.println("for문 이용");
for(i=0;i<list.size();i++) {
System.out.println(list.get(i));
//list(i)번 방을 가져와서 출력 상대적으로 느림 for문이랑 같이 처리 하기때문에
}
System.out.println("외부 반복자 이용");
Iterator<String> it = list.iterator(); //Iterator = 반복자,list set map 다 사용가능
while(it.hasNext()) {
//hasNext = it배열의 0번방부터 다음방에 내용이있으면 true
//없으면 false true면 반복(while문이기 때문에 참/거짓으로)
System.out.println(it.next());
}
//forEach 반복메서드
System.out.println("내부 반복자 이용");
list.stream().forEach(s -> System.out.println(s)); //list배열내부에서 자동으로 처리
}
}
결과
for문 이용
홍
김
이
유
외부 반복자 이용
홍
김
이
유
내부 반복자 이용
홍
김
이
유
예제1)
서브문
package 스트림;
public class Student {
String name;
int score;
public Student(String name, int score) {
super();
this.name = name;
this.score = score;
}
public String getName() {
return name;
}
public int getScore() {
return score;
}
}
메인문
package 스트림;
import java.util.Arrays;
import java.util.List;
public class Sample04 {
public static void main(String[] args) {
List<Student> list = Arrays.asList(
new Student("티모",90),
new Student("마스터이",70),
new Student("베인",88)
);
double avg = list.stream().mapToInt(Student::getScore)
.average()
.getAsDouble();
System.out.println("평균 : "+ avg);
}
}
평균 : 82.66666666666667
예제2
package 스트림;
import java.util.Arrays;
import java.util.stream.IntStream;
import java.util.stream.Stream;
public class Sample05 {
static int sum=0;
public static void main(String[] args) {
String[] arr = { "마이", "티모", "베인", "애쉬" };
Stream<String> s1 = Arrays.stream(arr); //배열을 스트림으로 만드는 작업
//Stream<String> stream = list.stream():
s1.forEach(a->System.out.print(a + " ")); //반복문
System.out.println();
//배열 특정 방 출력
Stream<String> s2 = Arrays.stream(arr, 1, 4); //(arr배열방의 1이상4미만의 방)
s2.forEach(a->System.out.print(a + " "));
System.out.println();
//1~100합계구하기
IntStream s3 = IntStream.rangeClosed(1,100);
s3.forEach(n -> sum += n); //반복문
System.out.println("합 : "+ sum);
}
}
마이 티모 베인 애쉬
티모 베인 애쉬
합 : 5050
728x90
'JAVA 입문 시작' 카테고리의 다른 글
22.12.06(화) Thread (0) | 2022.12.06 |
---|---|
22.12.05(월) 스트림 가공 (0) | 2022.12.05 |
22.12.05(월) andThen과 compose (0) | 2022.12.05 |
22.12.05(월) 람다식 Operator, Predicate (0) | 2022.12.05 |
22.12.02(불금) 자바안의 기본 람다 인터페이스 구현으로 예시문작성 (0) | 2022.12.02 |
Comments