예제와 함께 Java의 TreeMap에 대한 간략한 소개



이 기사는 메소드 및 생성자의 예제와 함께 Java의 TreeMap에 대한 상세하고 포괄적 인 지식을 제공합니다.

Java에서 Map 인터페이스를 구현하는 것은 매우 중요한 작업입니다. 이를 위해 우리는 TreeMapHashMap . 이 기사에서는 TreeMap에 중점을 둡니다. 다음 순서로 :

Java의 TreeMap은 무엇입니까?

Java의 TreeMap은 추상 클래스와 함께 Map 인터페이스 및 NavigableMap을 구현하는 데 사용됩니다. 맵은 사용되는 생성자에 따라 키의 자연스러운 순서 또는 맵 생성시 제공되는 Comparator에 따라 정렬됩니다. 이는 키-값 쌍을 정렬하고 저장하는 효율적인 방법임을 입증합니다.





TreeMap-in-Java트리 맵에 의해 유지되는 저장 순서는 명시 적 비교 자와 관계없이 다른 정렬 된 맵과 마찬가지로 동일해야합니다. 트리 맵여러 스레드에서 맵에 동시에 액세스하고 적어도 하나의 스레드가 맵을 구조적으로 수정하면 외부에서 동기화되어야한다는 의미에서 구현은 동기화되지 않습니다.

TreeMaps의 특징

  • 이 클래스는 Java Collections Framework의 멤버입니다.



  • 이 클래스는 NavigableMap, SortedMap을 포함한 Map 인터페이스를 구현하고 AbstractMap을 확장합니다.

    Linux 시스템 관리자 역할 및 책임
  • Java의 TreeMap은 Map과 같은 널 키를 허용하지 않으므로 NullPointerException이 발생합니다. 그러나 여러 null 값을 다른 키와 연결할 수 있습니다.

  • 이 클래스의 메서드와 해당 뷰에서 반환 된 모든 Map.Entry 쌍은 매핑이 생성 된 시점의 스냅 샷을 나타냅니다.



  • Entry.setValue 메소드를 지원하지 않습니다.

기억해야 할 중요한 사항

  1. Map 인터페이스를 구현하는 것 외에도 Java TreeMap은 NavigableMap을 구현하고 SortedMap 인터페이스를 간접적으로 구현합니다. TreeMap은 또한 AbstractMap 클래스를 확장합니다.

  2. TreeMap 항목은 키의 자연스러운 순서로 정렬됩니다. 또한 주문에 사용할 Comparator를 제공하는 생성자를 제공합니다. 따라서 클래스를 키로 사용하는 경우 자연스러운 순서를 위해 Comparable 인터페이스를 구현하고 있는지 확인하십시오. 이러한 방법의 중요성을 이해하려면 자바 컬렉션 인터뷰 질문을 확인하세요.

  3. Java TreeMap 구현은 containsKey, get, put 및 remove 작업에 대해 보장 된 log (n) 시간 비용을 제공합니다.

    자바 스크립트에서 경고를 사용하는 방법
  4. TreeMap은 동기화되지 않으므로 스레드로부터 안전하지 않습니다. 다중 스레드 환경의 경우 Collections.synchronizedSortedMap 메서드를 사용하여 래핑 된 동기화를 가져올 수 있습니다.

  5. 키 세트 및 값을 가져 오는 TreeMap 메서드는 본질적으로 실패 속도가 빠른 Iterator를 반환하므로 동시 수정시 ConcurrentModificationException이 발생합니다.

  6. Java의 TreeMap은 null 키를 허용하지 않지만 다른 키와 관련된 여러 null 값을 가질 수 있습니다.

TreeMap의 생성자

빌더 기술
트리 맵 () 키의 자연스러운 순서를 사용하여 정렬 될 빈 트리 맵을 구성합니다.
TreeMap (Comparator comp) Comparator comp를 사용하여 정렬 할 빈 트리 기반 맵을 생성합니다.
트리 맵 (Map m) m의 항목으로 트리 맵을 초기화합니다.이 항목은 키의 자연스러운 순서를 사용하여 정렬됩니다.
트리 맵 (SortedMap sm) sm과 동일한 순서로 정렬되는 SortedMap sm의 항목으로 트리 맵을 초기화합니다.

TreeMap의 메서드

방법 기술
무효 clear () 이 TreeMap에서 모든 매핑을 제거합니다.
개체 clone () 이 TreeMap 인스턴스의 얕은 복사본을 반환합니다.
비교기 비교기 () 이 맵을 정렬하는 데 사용 된 비교기를 반환하거나이 맵이 키의 자연 순서를 사용하는 경우 null을 반환합니다.
부울 containsKey (객체 키) 이 맵에 지정된 키에 대한 매핑이 포함 된 경우 true를 반환합니다.
부울 containsValue (객체 값) 이 맵이 하나 이상의 키를 지정된 값에 매핑하면 true를 반환합니다.
entrySet () 설정 이지도에 포함 된 매핑의 집합보기를 반환합니다.
객체 firstKey () 이 정렬 된 맵에서 현재 첫 번째 (가장 낮은) 키를 반환합니다.
Object get (객체 키) 이 맵이 지정된 키를 매핑하는 값을 반환합니다.
SortedMap headMap (객체 toKey) 이 맵의 키가 toKey보다 작은 부분의 뷰를 반환합니다.
keySet () 설정 이 맵에 포함 된 키의 Set 뷰를 반환합니다.
객체 lastKey () 이 정렬 된 맵에서 현재 마지막 (가장 높은) 키를 반환합니다.
Object put (Object key, Object 값) 지정된 값을이 맵의 지정된 키와 연결합니다.
void putAll (지도 맵) 지정된 맵의 모든 매핑을이 맵에 복사합니다.
개체 제거 (개체 키) 존재하는 경우이 TreeMap에서이 키에 대한 매핑을 제거합니다.
int 크기 () 이 맵의 키-값 매핑 수를 반환합니다.
SortedMap subMap (Object fromKey, Object toKey) 키 범위가 fromKey (포함)에서 toKey (배타적)까지 인이 맵 부분의 뷰를 반환합니다.
SortedMap tailMap (Object fromKey) 이 맵에서 키가 fromKey보다 크거나 같은 부분의 뷰를 반환합니다.
컬렉션 값 () 이지도에 포함 된 값의 컬렉션보기를 반환합니다.

Java의 TreeMap 예제

import java.util.TreeMap public class TreeMapMain {public static void main (String args []) {// 국가를 키로, 대문자를 값으로 사용하는 TreeMap // 키의 자연스러운 순서로 요소를 저장합니다. TreeMap countryCapitalMap = new TreeMap () countryCapitalMap.put ( 'India', 'Delhi') countryCapitalMap.put ( 'Japan', 'Tokyo') countryCapitalMap.put ( 'France', 'Paris') countryCapitalMap.put ( 'Russia' , 'Moscow') System.out.println ( '-----------------------------') // keySet (를 사용하여 TreeMap 반복 ) 및 각 루프에 대해 System.out.println ( 'keySet () 및 각 루프를 사용하여 TreeMap 반복') for (String countryKey : countryCapitalMap.keySet ()) {System.out.println ( 'Country :'+ countryKey + ' 및 Capital : '+ countryCapitalMap.get (countryKey))} System.out.println ('----------------------------- ' )}}

산출:

이것으로 우리는이 TreeMap in Java 기사를 마칩니다. 씨 도대체 전 세계에 걸쳐 250,000 명 이상의 만족 한 학습자 네트워크를 보유한 신뢰할 수있는 온라인 학습 회사 인 Edureka에서 작성했습니다. Edureka의 Java J2EE 및 SOA 교육 및 인증 과정은 Java 개발자가 되고자하는 학생과 전문가를 위해 설계되었습니다. 이 과정은 Java 프로그래밍을 시작하고 Hibernate & Spring과 같은 다양한 Java 프레임 워크와 함께 핵심 및 고급 Java 개념 모두에 대해 교육하도록 설계되었습니다.

질문이 있으십니까? 이 'Java의 TreeMap'블로그의 댓글 섹션에 언급 해 주시면 가능한 한 빨리 답변을 드리겠습니다.