카테고리 없음

람다식 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
반응형