[java] 배열 처리

sidohigar·2021년 11월 25일
0

샘플 예시

유니크한 키 값으로 DB에서 in 조건 조회 후 조회가 안된 키도 오류 결과 코드로 값을 리턴한다.

  1. 키 값이 'A', 'B', 'C', 'D' 인 4개의 row를 조회한다.
  2. select * from tbl_sample where sample_key in ('A','B','C','D');
  3. 이중 'A', 'C'의 값만 존재하는 상황
  4. 결과
   {
       	"data": [
    	    {
                "sampleKey": "A",
                "resultStatusCode": "SUC001"
            },
            {
                "sampleKey": "C",
                "resultStatusCode": "SUC001"
            }
        ]
    }
  1. 요청한 'B', 'D'에 대해서 결과 없음 "resultStatusCode": "ERR001" 을 만들어 준다
  2. 요청한 키 목록에서 결과 키 목록의 차집합을 구한다.
// 차집합을 구하기 위해 요청 String[] 을 List로 변환한다.
List<String> requestKeys = new ArrayList<>(Arrays.asList(param.getSampleKeys()));

// DB 결과 sampleList에서 sampleKey 값을 List로 변환한다.
// List<SampleDTO> sampleList = ArrayList<>(); 구조
List<String> returnKeys = sampleList.stream().map(SampleDTO::getSampleKey).collect(Collectors.toList());

// 차집합을 구한다
requestKeys.removeAll(returnKeys);
  1. 결과가 없는 키 값에 대해 값을 만들어 준다.
for(String requestKey : requestKeys) {
    SampleDTO sample = new SampleDTO();
    sample.setSampleKey(requestKey);
    sample.setResultStatusCode("ERR001");
    sampleList.add(sample);
}

끗~

0개의 댓글