728x90
반응형
게시글이 도움이 되었다면
[로그인]이 필요 없는 ❤ 클릭과
게시글의 광고를 클릭 해 주세요:)
자바에서 스트림 Sum, filter , List 출력하기 예제
문제풀이를 위한 제시된 코드 전체
Main.java
package org.example.p1;
import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Money> money = Arrays.asList(
new Money("백원", 100, "이순신"),
new Money("천원", 1_000, "퇴계 이황"),
new Money("오천원", 5_000, "율곡 이이"),
new Money("만원", 10_000, "세종대왕"),
new Money("오만원", 50_000, "신사임당")
);
// < 문제 1 >
// stream 을 이용하여 amount의 합계 구하기
// sum() 사용
// 구현(1줄)
int total = 0;
// total = money.stream()
// end of 구현
// 출력값 : 66100
System.out.println(total);
// < 문제 2 >
// stream을 이용하여 amount의 값이 50000인 인물을 구한다.
// filter 사용
// 구현
String person = "";
// person = money.stream()
// end of 구현
// 출력값 : 신사임당
System.out.println(person);
// < 문제 3 >
// stream을 이용하여 돈의 이름(100월, 1000원, ..., 50000원)을 List로 모은다.
// 마지막에 collect(Collectors.toList()) 사용
// 구현
List<String> names = null;
// names = money.stream()
// end of 구현
// 출력값 :
// 백원
// 천원
// 오천원
// 만원
// 오만원
if(names != null){
names.forEach(System.out::println);
}
}
}
Money.java
package org.example.p1;
public class Money {
private String name;
private int amount;
private String person;
public Money(String name, int amount, String person) {
this.name = name;
this.amount = amount;
this.person = person;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAmount() {
return amount;
}
public void setAmount(int amount) {
this.amount = amount;
}
public String getPerson() {
return person;
}
public void setPerson(String person) {
this.person = person;
}
@Override
public String toString() {
return "Money{" +
"name='" + name + '\'' +
", amount=" + amount +
", person='" + person + '\'' +
'}';
}
}
Stream에서 Sum 이용하여 합계 구하기
<문제1>
stream을 이용하여 amount의 합계 구하기
풀이 코드
int total = 0;
total = money.stream()
.mapToInt(Money::getAmount)
.sum();
System.out.println("total");
System.out.println(total);
결과
total
66100
Stream에서 filter 이용하여 원하는 값 출력하기
< 문제 2 >
stream을 이용하여 amount의 값이 50000인 인물을 구한다
풀이코드
String name = money.stream()
.filter(p -> p.getAmount() >= 50_000)
.map(p -> {
String pPerson = p.getPerson();
return pPerson;
})
.findFirst().get();
System.out.println(name);
결과값
신사임당
Stream에서 List 이용하여 해당 값 출력하기
< 문제 3 >
stream을 이용하여 돈의 이름(100월, 1000원, ..., 50000원)을 List로 모은다.
마지막에 collect(Collectors.toList()) 사용해서 List를 출력
풀이코드
List<String> names = null;
names = money.stream()
.map(n -> n.getName())
.collect(Collectors.toList());
if(names != null){
names.forEach(System.out::println);
}
결과
백원
천원
오천원
만원
오만원
풀이 전체 코드
package org.example.p1;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class Main {
public static void main(String[] args) {
List<Money> money = Arrays.asList(
new Money("백원", 100, "이순신"),
new Money("천원", 1_000, "퇴계 이황"),
new Money("오천원", 5_000, "율곡 이이"),
new Money("만원", 10_000, "세종대왕"),
new Money("오만원", 50_000, "신사임당")
);
// < 문제 1 >
// stream 을 이용하여 amount의 합계 구하기
// sum() 사용
int total = 0;
total = money.stream()
.mapToInt(Money::getAmount)
.sum();
// 출력값 : 66100
System.out.println("total");
System.out.println(total);
// < 문제 2 >
// stream을 이용하여 amount의 값이 50000인 인물을 구한다.
// filter 사용
String person = "";
Stream<String> _stringStream = money.stream()
.filter(p -> p.getAmount() >= 5_000)
.map(p -> "(조선) " + p.getPerson());
String name = money.stream()
.filter(p -> p.getAmount() >= 50_000)
.map(p -> {
String pPerson = p.getPerson();
return pPerson;
})
.findFirst().get();
System.out.println(name);
// 출력값 : 신사임당
// < 문제 3 >
// stream을 이용하여 돈의 이름(100월, 1000원, ..., 50000원)을 List로 모은다.
// 마지막에 collect(Collectors.toList()) 사용
List<String> names = null;
names = money.stream()
.map(n -> n.getName())
.collect(Collectors.toList());
if(names != null){
names.forEach(System.out::println);
}
}
}
전체 출력값
total
66100
신사임당
백원
천원
오천원
만원
오만원
반응형
'JAVA' 카테고리의 다른 글
[개발지식] HTTP API, CSR, SSR의 정의 및 특징 (0) | 2023.01.20 |
---|---|
[Java] enum이란? enum 활용하기 (0) | 2023.01.17 |
[Java | 웹개발] @JsonFormat 어노테이션 사용으로 Date 형식 바꾸기 / 시간 서울기준으로 맞추기 (0) | 2022.11.18 |
[Java] Array, ArrayList, HashMap 사용법, 데이터 출력법, 차이점 (0) | 2022.11.04 |
[Java] Math.random()을 이용한 주사위 두개 굴리기 예제 (1) | 2022.11.01 |