JAVA

[JAVA] Value Object (VO) 리스트 중복 제거

김민둉 2021. 9. 7. 15:51

list에 담긴 vo의 값을 비교하여 중복을 제거할 일이 생겼다.

String의 경우 set 을 이용하여 제거를 했었는데 vo는 set으로 해결이 되지 않았다.

알아보니 vo에 hashCode()와 equals()을 Override 해줘야 한다.

 

현재 사용중인 vo이다.

이클립스에서 한번에 override 할 수 있다.

 

 

 

소스에 커서를 올리고 Alt+Shift+S 누르면

이렇게 나온다.

여기서 Generate hashCode() and equals()... 를 누르면

 

 

 

이렇게 변수를 선택할 수 있다.

비교하고 싶은 변수만 선택하여 Generate 한다.

나는 전부 다 선택했다.

 

 

 

이렇게 코드에 자동 생성되는 것을 확인할 수 있다.

 

 

 

중복 제거는 set을 사용하여

List<CodeVO> newList = new ArrayList<CodeVO>(new HashSet<CodeVO>(oldList));

다음과 같이 할 수 있다.