Stream API

[Java] Stream API 예제
Jan 08, 2024
Stream API
컬렉션(Collection)이나 배열 등의 데이터 요소들을 처리하기 위한 기능을 제공합니다. 스트림을 이용하면 데이터를 일관성 있게 다룰 수 있고, 간결하고 가독성 좋은 코드를 작성할 수 있습니다.
notion image

스트림 예제

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
RSSPowered by inblog