컬렉션에서 우리는 요구 사항에 따라 집합이나지도를 정렬 할 수있었습니다. Treeset 또는 TreeMap은 정렬 된 컬렉션도 제공합니다. 우리가 수집 분류 필요할 때 TreeSet의를 사용하여 어떤 이점이 있습니까수작업으로 정렬 된 집합을 통해 나무 집합을 갖는 이점
답변
포스터는 이전에 중요한 기준을 언급하지 않은 수 요소는 삽입 중에 만 정렬되기 때문에 이상적이지 않습니다. 나는. TreeSet
/TreeMap
에있는 요소의 정렬 키를 변경하면 자동으로 다시 정렬되지 않습니다. 요소를 업데이트하기 전에 컬렉션에서 요소를 제거한 다음 요소를 업데이트 한 후 다시 추가해야 요소를 올바른 위치에 삽입 할 수 있습니다. 내 UpdateableTreeSet을 사용하면 TreeSet
을 계속 정렬 할 수 있습니다.
위에서 언급했듯이이 경우 아마도 정렬되지 않은 컬렉션에 Collections.sort()
을 사용하는 것이 더 쉬운 방법 일 수 있다고 결론 내릴 수 있습니다. 어느 쪽이 전반적으로 빠른지는 상황에 따라 다릅니다. 나는 UpdateableTreeSet
꽤 많이 당신이 정렬 키를 변경 장소로 제한 기존 컬렉션의 정렬을 유지해야 도움이 될 것 같아요.
의 가장 큰 차이점은
TreeSet
데이터가 모든 시간과 수동 항상 분류되지 않을 수 있습니다 분류하여 유지 집합을 분류 유지합니다.
그래서 항상 정렬을 유지하지 않으려면 TreeSet
을 권장합니다.
다른 사람들이 말한 것에 더하여, TreeSet에는 서브 세트를 빨리 얻을 수있는 것과 같은 멋진 기능이 있습니다.
외에도 정렬 된 항목이 필요한 빈도에 대한 질문입니다. 100 세트를 만들고 그 중 하나 또는 두 개만 정렬해야하는 경우 삽입하는 동안 정렬하는 오버 헤드가 그만한 가치가 없을 것입니다. 그러나 세트를 한 번에 분류 할 예정이라면 트리 세트를 사용할 수 있습니다. 이 요구되어 그 어느 때
TreeSet의 그것은 항상 도움이됩니다
은 집합을 분류 한합니다. 마지막으로 기본 작업
- log (n) 시간 비용 (추가, 제거 및 포함)
- TreeSet의가)가 (처음처럼 정렬 된 세트를 다루는 몇 가지 편리한 방법을,(), 헤드셋() 및 tailSet() 등
- 비교기를 제공하지 않으면 TreeSet 내부의 항목이 자연 순서에 따라 자동으로 정렬됩니다.
또한 TreeSet 설명서를 참조하십시오. 컬렉션의 요소가 삽입 후 종종 자신의 상태를 변경하는 경우, 당신은 다시 정렬 같은 컬렉션을 여러 번, 어쩌면 TreeSet
또는 TreeMap
이 필요 즉 : TreeSet
- 1. C++에서 구조체 집합을 갖는 방법
- 2. 집합을 전달하여 새 집합을 만듭니다.
- 3. vb.net을 통해 데이터 집합을 비교
- 4. 필터링 된 레코드 집합을 포함하십시오.
- 5. Django가 조인 된 집합을 찾습니다.
- 6. 중첩 된 데이터 집합을 관리
- 7. 정렬 된 데이터 집합을 최소 수의 클러스터로 그룹화
- 8. 정렬 된 기본 키 집합을 기반으로 데이터 검색
- 9. C에서 DB에서 여러 정렬 된 데이터 집합을 정렬하는 방법 #?
- 10. 병렬 작업 집합을 통해 트랜잭션을 공유하는 방법
- 11. 여러 페이지를 통해 단일 레코드 집합을 스패닝하기
- 12. 동적 작업 집합을 트리거
- 13. 결과 집합을 통해 실행할 때 결과 집합
- 14. 주어진 값 집합을 통해 SQL 쿼리 작성하기
- 15. C#에서 Collection의 하위 집합을 통해 열거합니까?
- 16. 명령을 통해 얻은 파일 집합을 Vim 버퍼에로드하십시오.
- 17. 개체 집합을 통해 여러 레코드 삽입
- 18. 특정 인덱스에서 특정 인덱스로 집합을 통해 이동
- 19. Postgres에서 분할 된 테이블 집합을 변경하려면 어떻게합니까?
- 20. 데이터 집합을 정렬하는 방법?
- 21. 데이터 집합을 Excel로 내보내기
- 22. Webfont의 문자 집합을 제한합니까?
- 23. 레코드 집합을 사용하여
- 24. 데이터 집합을 데이터베이스에 저장
- 25. 문자열 I 문자열의 집합을
- 26. EntityFramework에서 복잡한 결과 집합을 쿼리하고 MVC에 결과 집합을 표시하는 방법
- 27. 형식화 된 데이터 집합을 생성하는 T4 템플릿
- 28. 반환 된 결과 집합을 CoreData로 제한합니다.
- 29. 지연이 포함 된 쿼리 집합을 장고에서 serialize
- 30. 데이터 집합을 반복하고 누락 된 값을 처리합니다.
한 가지 이유는 잊어 버렸을 때 (실수로) 잊어 버릴 염려가 없기 때문입니다. –
"수동으로 정렬 된 집합"을 정의 할 수 있습니까? 휠을 사용할 수있을 때 다시 발명하는 것이 합리적입니까? – kosa
당신은'collections.sort()'를 명시 적으로 호출함으로써 수동으로 정렬된다는 것을 의미합니까? –