카테고리 없음
람다식 map
Binsoo
2021. 2. 25. 11:31
728x90
반응형
람다식
filter 를 사용해서 조건에 만족하는 데이터를 골라내는 법은 알아냈지만
map을 이용해서 조건에 만족하는 데이터를 조작하는 방법도 알아보자.

나는 map 이라길래 Map 을 가르키는 줄 알았다.
list = list.stream().filter(x -> x.getI_title().equals("은지"))
.map(x->{x.setI_title(x.getI_title() + "_수정");
return x;
}).collect(Collectors.toList());
코드 해석
조건에 부합하는 i_title 이 "은지" 인 vo만 추출 한다.
후에 map 안에서
vo의 i_title 을 꺼내와서 "_수정" 을 문자열 연결을 시켜준다.
연결시킨 문자열을 다시 set 시킨다.
List 형이니까 아래 코드로 현변환 까지 시켜줘야 하는 것을 잊지말자.
.collect(Collectors.toList());

전체 코드
package com.rsn.def.job;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import com.rsn.def.vo.Demon_Test_VO;
public class 람다식 {
public static void main(String[] args) {
람다식 LAM = new 람다식();
List<Demon_Test_VO> list = LAM.createData();
System.out.println("================{ 람다식 사용 전 }====================");
for( Demon_Test_VO vo : list ) {
System.out.println(vo.getI_title());
System.out.println(vo.getI_content());
}
//list = list.stream().filter(x -> x.getI_title().equals("은지") && x.getI_content().equals("달리기")).collect(Collectors.toList());
list = list.stream().filter(x -> x.getI_title().equals("은지")).map(x->{
x.setI_title(x.getI_title() + "_수정");
return x;
}).collect(Collectors.toList());
System.out.println("================{ 람다식 사용 후 }====================");
for( Demon_Test_VO vo : list ) {
System.out.println(vo.getI_title());
System.out.println(vo.getI_content());
}
}
private List<Demon_Test_VO> createData() {
List<Demon_Test_VO> list = new ArrayList<Demon_Test_VO>();
Demon_Test_VO v1 = new Demon_Test_VO();
Demon_Test_VO v2 = new Demon_Test_VO();
Demon_Test_VO v3 = new Demon_Test_VO();
Demon_Test_VO v4 = new Demon_Test_VO();
Demon_Test_VO v5 = new Demon_Test_VO();
Demon_Test_VO v6 = new Demon_Test_VO();
Demon_Test_VO v7 = new Demon_Test_VO();
v1.setI_title("수빈");
v1.setI_content("수영");
v2.setI_title("보은");
v2.setI_content("골프");
v3.setI_title("은지");
v3.setI_content("헬스");
v4.setI_title("은지");
v4.setI_content("사격");
v5.setI_title("다미");
v5.setI_content("필라테스");
v6.setI_title("은지");
v6.setI_content("달리기");
v7.setI_title("나나");
v7.setI_content("요가");
list.add(v1);
list.add(v2);
list.add(v3);
list.add(v4);
list.add(v5);
list.add(v6);
list.add(v7);
return list;
}
}
728x90
반응형