TreeSet
속성을 기반으로 중복 객체를 제거 하는 데 사용 하고 싶습니다 (여기에 toString()
객체의 이름을 반환합니다), 여기에 내 코드가 있습니다.
Set<Object> s = new TreeSet<>(new Comparator<Object>() {
@Override
public int compare(Object o1, Object o2) {
if (o1.toString().equals(o2.toString())) {
return 0;
} else {
return 1;
}
}
});
s.addAll(listComCopy);
listComCopy.clear();
listComCopy.addAll(s);
listComCopy
개체 목록입니다.
작업을 수행하지만 목록에서 연속 된 개체 만 비교하므로 내가 있으면 list(50).equals(list(150))
무시합니다.
목록의 순서에 관계없이 모든 중복을 제거하기 위해이 코드를 어떻게 리팩터링 할 수 있는지 알고 있습니까?
귀하의 compare
방법은 요구 사항을 준수하지 않습니다.
Comparator.compare를 참조하십시오 ...
순서에 대한 두 인수를 비교합니다. 첫 번째 인수가 두 번째 인수 보다 작거나 같거나 크면 음의 정수 , 0 또는 양의 정수를 반환합니다 .
.NET Framework 에서 String.compareTo 를 사용하는 것이 좋습니다 compare
.
Set<Object> s = new TreeSet<>(new Comparator<Object>() {
@Override
public int compare(Object o1, Object o2) {
return o1.toString().compareTo(o2.toString());
}
});
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다