>  기사  >  Java  >  자바 맵의 키 정렬입니까?

자바 맵의 키 정렬입니까?

angryTom
angryTom원래의
2019-11-18 11:46:462043검색

자바 맵의 키 정렬입니까?

Java 맵의 주요 정렬인가요?

java는 데이터 구조에서 매핑을 위한 인터페이스 java.util.Map을 정의합니다. 즉, HashMap, HashTable, LinkedHashMapTreeMap, Map Duplication입니다. 키는 허용되지 않지만, 값의 중복은 허용됩니다

1.HashMap:

가장 많이 사용되는 맵은 키의 해시코드 값을 기반으로 데이터를 저장하며, 키를 기반으로 직접 값을 얻을 수 있습니다. (동일한 키는 동일한 해시코드 값을 가지기 때문에 주소가 해시코드 값인 곳에 값이 저장되므로 키에 따라 직접 값을 얻을 수 있습니다.) 이는 순회 시 액세스 속도가 매우 빠릅니다. 데이터 획득은 완전히 무작위입니다. HashMap은 최대 한 레코드의 키만 허용하며, 여러 레코드의 값은 null이 허용됩니다. 즉, 여러 스레드가 언제든지 HashMap을 쓸 수 있습니다. 동시에 동기화가 필요한 경우에는 syncronziedMap 메서드를 사용하여 HashMap을 동기화하거나 ConcurrentHashMap

2.HashTable을 사용할 수 있습니다.

HashMap과 유사하지만 차이점은 있습니다. 기록된 키나 값이 비어 있는 것을 허용하지 않으며 스레드 동기화를 지원합니다. 즉, 언제든지 하나의 스레드만 HashTable에 쓸 수 있으므로 결과적으로 HashTable은 쓸 때 속도가 느려집니다! 3.LinkedHashMap:

은 HahsMap의 하위 클래스이지만

레코드 삽입 순서를 유지합니다. 순회할 때 반드시 첫 번째 항목이 먼저 삽입됩니다. 이는 생성 시 매개변수를 사용하여 애플리케이션 수에 따라 정렬됩니다. 단, HashMap의 용량이 크고 실제 데이터가 작은 경우에는 LinkedHashMap보다 속도가 느려집니다(체인이기 때문에). LinkedHashMap의 순회 속도는 용량과 관련이 있지만 LinkedHashMap의 순회 속도는 데이터 양에만 관련됩니다

4.TreeMap:

sortMap 인터페이스를 구현하고,

저장된 레코드를 키별로 정렬할 수 있습니다(기본 오름차순), 또는 정렬 비교기를 지정할 수 있으며 순회 중에 얻은 데이터가 정렬됩니다

어떤 상황에서 사용할 지도 유형:

지도에 요소 삽입, 삭제 및 위치 지정: HashMap

사용자 정의 순서로 순회하려면 또는 자연 순서 : TreeMap

에서는 입력 순서와 출력 순서가 동일해야 합니다. LinkedHashMap

php 중국 웹사이트, 수많은 무료

Java 입문 튜토리얼

, 온라인 학습을 환영합니다!

위 내용은 자바 맵의 키 정렬입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.