2017-11-01 1 views
1

내 이해대로 Set 중복 레코드를 방지하는 데 도움이 될 수 있지만 정렬 할 수 없습니다.중복 레코드 및 정렬 방지 컬렉션

List을 사용하는 경우 정렬 할 수 있지만 중복 기록을 방지 할 수 없습니다.

TreeSet을 사용하는 경우 내 TreeSet에있는 객체는 Comparable을 구현해야하며, 이는 내 프로젝트에서 큰 변경이 필요하며 가능한 경우 변경하지 않는 것이 좋습니다.

아마도 SetList으로 변환 한 다음 정렬 할 수 있습니다. 그러나, 내 프로그램은 약간 복잡합니다, 내가 그것을 정렬 한 후에, 나는 여전히이 list 안에 객체를 추가 할 필요가 있습니다. 동시에, 중복을 방지하고 싶습니다. 이렇게하려면 변환해야합니다. List에서 Set으로 다시 정렬 한 다음 안에 새 오브젝트 만 추가하십시오.

내 컬렉션을 개체 값에 따라 정렬하고 동시에 중복 레코드를 방지 할 수있는 방법을 찾고 싶습니다.

바라기를 나는 잘못을 묻는 것이 아닙니다.

+1

목록을 어떻게 분류 하시겠습니까? – shmosel

+0

@shmosel, 내 객체의 값을 기본으로 정렬하고 싶습니다. 예를 들어 오브젝트 호출 지불을 선택한 다음 paymentId로 정렬하거나 참조 번호별로 정렬합니다. –

+0

그러나 * 어떻게 *? 내가 무엇을 얻는지는, 당신이리스트를 정렬하기 위해 무엇을 사용 하든지, 당신은 TreeSet을 사용할 수 있어야한다는 것이다. – shmosel

답변

9

TreeSet이 요구 사항에 가장 적합합니다. 내가 TreeSet의를 사용하는 경우

, 다음 내 TreeSet의의 목적은 사실이 아니다 그

Comparable를 구현해야합니다. TreeSet은 요소 유형이 Comparable을 구현하지 않아도됩니다. 대신 ComparatorTreeSet 생성자에 전달할 수 있습니다. 당신의 요소 유형은 Comparable를 구현하지 않기 때문에

는 당신이 List을 정렬 할 거라고, 당신은 어쨌든 Comparator이 필요했을 것이다, 그래서 대신 List 정렬의하는 TreeSetComparator 것을 사용합니다.