답변:
는 수집 순서 컬렉션의 요소가 특정 순서를 것을 의미합니다. 순서는 값과 무관합니다. 목록은 예입니다.
A는 수집 분류 컬렉션이 순서를 가지고뿐만 아니라 의미하지만, 순서는 요소의 값에 따라 달라집니다. 된 SortedSet 예이다.
반대로, 순서 가 없는 컬렉션 은 요소를 임의의 순서로 유지할 수 있습니다. 설정은 예입니다.
Java는 "순서 모음"을 사용하여 List와 같은 모음을 의미합니다. 여기서 HashSet과 달리 모음은 요소의 순서를 기억하므로 순서에 따라 특정 "장소"에서 요소를 모음에 추가 할 수 있습니다. .
Java는 "정렬 된 컬렉션"을 사용하여 SortedSet과 같은 컬렉션을 의미합니다. 여기서 List와 달리 이터레이터가 컬렉션을 통과하는 순서는 지정된 Comparator 또는 요소의 자연 순서에 따릅니다.
차이점은 순서가 값에 따라 달라지는 지 ( "정렬 된") 요소가 값과 독립적으로 갖는 속성 ( "순서")인지입니다.
OrderedDict
파이썬한다. 그러나 .NET에서는 "정렬 된"열거 가능한 인터페이스를 호출 IOrderedEnumerable
합니다. 따라서 다릅니다. 그냥 ..
예, 개념은 비슷하지만
List
정렬 된 컬렉션 : 각 요소에는 요소의 순서를 구성하는 색인이 있지만 일반적으로 요소 자체의 속성과 관련이 없습니다.
SortedMap
그리고 SortedSet
수집, 수집은 소자 자체에서 유래하는 순서로 일어날 것을 반복 처리 수단에 정렬된다. 예를 들어, SortedSet<String>
문자열이 있으면 사전 식 정렬 순서에 따라 문자열이 정렬됩니다.
주문한 컬렉션 은 정렬 수 있지만 Collections.sort()
외부 순서가 요소의 정렬 순서와 동일 할 때 (예 :을 사용한 후 ) 정렬 필요는 없습니다 . 정렬 된 컬렉션은 항상 암시 적으로 정렬됩니다 (즉, 항상 "첫 번째"요소가 있으며 더 작은 다른 요소를 추가하지 않는 한 항상 동일합니다).
정렬 된 컬렉션 vs. 정렬 된 컬렉션
1. 소장품
정렬 된 콜렉션은 Java 콜렉션 프레임 워크에서 제공하는 정렬 기능을 사용하여 콜렉션을 정렬합니다. 정렬은 Java 비교기를 사용하여 데이터베이스에서 데이터를 읽은 후 Hibernate를 실행하는 JVM의 메모리에서 발생합니다.
컬렉션이 크지 않으면 더 효율적으로 정렬 할 수 있습니다. jvm 메모리에서 발생하면 메모리 부족 오류가 발생할 수 있습니다.
2. 주문 수집
주문 콜렉션은 검색시이 콜렉션을 정렬하기 위해 조회에서 order-by 절을 지정하여 콜렉션을 정렬합니다. 컬렉션이 매우 큰 경우 더 효율적으로 정렬 할 수 있습니다. 정렬 된 컬렉션에 비해 빠릅니다.
IOrderedEnumerable
(재미있는 것은 .NET.에 "삽입 순서".NET에서 respectin 사전이라고에서 매우 일치하지 않는OrderedDictionary
, 어떤 말을 비교하여 잘못된 판단하는IndexedDictionary
) . 자바 세계에서 그렇습니다 (대부분 다른 곳에서도). 자세한 내용은 여기를 참조 하십시오 .