본문 바로가기
JAVA

[Java stream] anyMatch를 이용한 list 간의 join 진행 테스트

by Hwoarang757 2024. 5. 21.

[Java stream] anyMatch를 이용한 list 간의 join 진행 테스트

 

testArray 와 compareList 간 name key로 inner join 을 진행 하여 일치하는 testArray 요소만 리턴 하였습니다.

package com.gmission.test.service;


import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;

import org.springframework.stereotype.Service;

@Service
public class AnyMatchTestServiceImpl implements IAnyMatchTestService {

	@Override
	public List<?> AnyMatchTest() {

		List<String> compareList = Arrays.asList("김철수","김영미","강감찬");
		
		ArrayList<HashMap<String,String>> testArray = new ArrayList<>();

		testArray.add(new HashMap<>() {{
			put("name", "홍길동");
			put("id" , "user1");
			put("empno" , "12345678");
		}} );

		testArray.add(new HashMap<>() {{
			put("name", "김철수");
			put("id" , "user2");
			put("empno" , "12345679");
		}} );

		testArray.add(new HashMap<>() {{
			put("name", "김영미");
			put("id" , "user1");
			put("empno" , "12345670");
		}} );
		
		
		return testArray.stream().filter(y -> compareList.stream().anyMatch(x -> x.equals(y.get("name")))).toList();
		
	}

}

 

결과