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));
다음과 같이 할 수 있다.