Contents
데이터의 나이를 -1씩 가공해보기컬렉션(Collection)이나 배열 등의 데이터 요소들을 처리하기 위한 기능을 제공합니다. 스트림을 이용하면 데이터를 일관성 있게 다룰 수 있고, 간결하고 가독성 좋은 코드를 작성할 수 있습니다.

스트림 예제
import java.util.*;
import java.util.stream.Collectors;
public class Test {
static public void main(String []args) {
List<String> list = Arrays.asList("Kim","Park","Lee","Choi","Chee");
List<String> sublist = list.stream() // 스트림 생성
.filter(s->s.startsWith("C")) // 스트림 처리
.sorted() // 스트림 처리
.toList(); // 결과 생성
System.out.println(sublist); // 결과 출력
}
}
데이터의 나이를 -1씩 가공해보기
Map이용
import java.util.*;
public class StreamEx01 {
public static void main(String[] args) {
Map<String, Object> data = new HashMap<>();
data.put("name","홍길동");
data.put("age",20);
Map<String, Object> data2 = new HashMap<>();
data2.put("name","장보고");
data2.put("age",15);
Map<String, Object> data3 = new HashMap<>();
data3.put("name","이순신");
data3.put("age",30);
List<Map<String,Object>> arr = Arrays.asList(data,data2,data3);
List<Map<String,Object>> newArr = arr.stream().map(d -> {
int newAge = (Integer) d.get("age")-1;
d.put("age",newAge);
return d;
} ).toList();
newArr.stream().forEach(d -> {
System.out.println(d.get("age"));
} );
}
}
class 이용
import java.util.Arrays;
import java.util.List;
class User{
private String name;
private int age;
public User(String name, int age) {
this.name = name;
this.age = age;
}
public void changeAge(){
this.age = this.age-1;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
}
public class StreamEx02 {
public static void main(String[] args) {
// User 3명 만들기 (홍길동 20, 장보고 15, 임꺽정 30)
User user1 = new User("홍길동",20);
User user2 = new User("장보고",15);
User user3 = new User("임꺽정",30);
// ArrayList에 User 담기
List<User> list = Arrays.asList(user1,user2,user3);
// stream으로 순회하면서 map으로 가공하기 (나이-1)
list.stream().map(u -> {
u.changeAge();
return u;
}).toList();
list.stream().forEach(user -> {
System.out.println(user.getAge());
});
}
}
class를 이용하여 가공하는 것이 더 좋다.
Share article