db에서 조회한 리스트 값에서 필요한 column만 리스트로 변환한다.
intervalList.stream().map(EbCurriculumInterval::getCategCd).collect(Collectors.toList());
변환 후 리스트를 보니 중복값이 존재했다.
이 중복값을 제거하기 위해 두가지 방법이 존재한다.
한가지는 Stream
을 사용하는 것이다.
public static List<String>distinctList(List<String> list){
return list.stream().distinct().collect(Collectors.toList());
}
나는 공통소스로 빼서 사용했다.
CommonUtils.distinctList(intervalList.stream().map(
EbCurriculumInterval::getCategCd).collect(Collectors.toList()));
두번째는 Set
을 이용하는 방법이다.
이 방법은 list -> set -> list로 변경하는 간단한 방법이다.
// List 준비
List<String> list = Arrays.asList("A", "B", "C", "A");
// List를 Set으로 변경
Set<String> set = new HashSet<String>(list);
// Set을 List로 변경
List<String> newList =new ArrayList<String>(set);
이런식으로 사용하면 중복이 사라진다.