<aside> 📌 Steam 예시1
</aside>
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class ListExample {
public static void main(String[] args) {
// List 생성
List<String> list = Arrays.asList("apple", "banana", "cherry", "date", "elderberry");
// 결과를 저장할 새 List 생성
List<String> result = new ArrayList<>();
// List를 순회하며 "apple"을 찾고 대문자로 변환
for (String fruit : list) {
if (fruit.equals("apple")) {
result.add(fruit.toUpperCase());
}
}
// 결과 출력
System.out.println(result);
}
}
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class StreamExample {
public static void main(String[] args) {
// List 생성
List<String> list = Arrays.asList("apple", "banana", "cherry", "date", "elderberry");
// List를 Stream으로 변환하고 "apple"을 찾아 대문자로 변환
List<String> result = list.stream()
.filter(fruit -> fruit.equals("apple"))
.map(String::toUpperCase)
.collect(Collectors.toList());
// 결과 출력
System.out.println(result);
}
}
<aside> 📌 Steam 예시2
</aside>
public class Student {
private String name;
private int score;
public Student(String name, int score) {
this.name = name;
this.score = score;
}
public String getName() {
return name;
}
public int getScore() {
return score;
}
}
import java.util.Arrays;
import java.util.List;
public class ListExample {
public static void main(String[] args) {
// 학생 리스트 생성
List<Student> students = Arrays.asList(
new Student("John", 85),
new Student("Jane", 90),
new Student("Adam", 76),
new Student("Tom", 80),
new Student("Jerry", 95)
);
// 점수가 80 이상인 학생의 점수 합계 계산
int sum = 0;
for (Student student : students) {
if (student.getScore() >= 80) {
sum += student.getScore();
}
}
// 결과 출력
System.out.println("The sum of scores of students who scored 80 or above: " + sum);
}
}
import java.util.Arrays;
import java.util.List;
public class StreamExample {
public static void main(String[] args) {
// 학생 리스트 생성
List<Student> students = Arrays.asList(
new Student("John", 85),
new Student("Jane", 90),
new Student("Adam", 76),
new Student("Tom", 80),
new Student("Jerry", 95)
);
// 점수가 80 이상인 학생의 점수 합계 계산
int sum = students.stream()
.filter(student -> student.getScore() >= 80)
.mapToInt(Student::getScore)
.sum();
// 결과 출력
System.out.println("The sum of scores of students who scored 80 or above: " + sum);
}
}
mapToInt
**는 Stream의 각 요소를 int로 변환하는 작업을 수행한다.Student
객체의 getScore
메소드를 사용하여 각 학생의 점수를 가져오고, 이 점수를 int로 변환한다. 이렇게 하면, 결과적으로 Student
객체의 Stream이 int의 Stream으로 변환된다.mapTo
메소드도 있습니다. 예를 들어, **mapToLong
**과 mapToDouble
메소드가 있습니다. 이 메소드들은 각각 long과 double로 변환하는 작업을 수행합니다.