logo

자바 트리맵 클래스

Java TreeMap 클래스 계층 구조

Java TreeMap 클래스는 레드-블랙 트리 기반 구현입니다. 이는 정렬된 순서로 키-값 쌍을 저장하는 효율적인 수단을 제공합니다.

Java TreeMap 클래스의 중요한 점은 다음과 같습니다.

  • Java TreeMap에는 키를 기반으로 하는 값이 포함됩니다. NavigableMap 인터페이스를 구현하고 AbstractMap 클래스를 확장합니다.
  • Java TreeMap에는 고유한 요소만 포함되어 있습니다.
  • Java TreeMap은 널 키를 가질 수 없지만 여러 널 값을 가질 수 있습니다.
  • Java TreeMap이 동기화되지 않았습니다.
  • Java TreeMap은 오름차순을 유지합니다.

TreeMap 클래스 선언

java.util.TreeMap 클래스 선언을 살펴보겠습니다.

봄 MVC
 public class TreeMap extends AbstractMap implements NavigableMap, Cloneable, Serializable 

TreeMap 클래스 매개변수

java.util.TreeMap 클래스의 매개변수를 살펴보겠습니다.

    케이: 이 맵에서 관리하는 키 유형입니다.안에: 매핑된 값의 종류입니다.

Java TreeMap 클래스의 생성자

건설자설명
트리맵()키의 자연 순서를 사용하여 정렬되는 빈 트리 맵을 구성하는 데 사용됩니다.
TreeMap(비교기 비교기)비교기 comp를 사용하여 정렬될 빈 트리 기반 맵을 구성하는 데 사용됩니다.
트리맵(Map m)다음의 항목으로 트리맵을 초기화하는 데 사용됩니다. , 이는 키의 자연스러운 순서를 사용하여 정렬됩니다.
TreeMap(SortedMap m)SortedMap의 항목으로 트리맵을 초기화하는 데 사용됩니다. sm , 와 같은 순서로 정렬됩니다. sm.

Java TreeMap 클래스의 메소드

방법설명
지도.입장한도입장(K키)지정된 키보다 크거나 같은 최소 키를 갖는 키-값 쌍을 반환하거나, 해당 키가 없는 경우 null을 반환합니다.
K천정열쇠(K키)지정된 키보다 큰 최소 키를 반환하거나 해당 키가 없는 경우 null을 반환합니다.
무효 클리어()맵에서 모든 키-값 쌍을 제거합니다.
객체 복제()TreeMap 인스턴스의 얕은 복사본을 반환합니다.
비교기 비교기()키를 순서대로 정렬하는 비교기를 반환하거나, 맵이 자연 순서를 사용하는 경우 null을 반환합니다.
NavigableSet 내림차순 키 세트()맵에 포함된 키의 역순 NavigableSet 뷰를 반환합니다.
NavigableMap 내림차순 지도()지정된 키-값 쌍을 내림차순으로 반환합니다.
Map.Entry firstEntry()가장 작은 키를 갖는 키-값 쌍을 반환합니다.
지도.진입층입구(K키)지정된 키보다 작거나 같은 가장 큰 키를 반환하거나 해당 키가 없는 경우 null을 반환합니다.
void forEach(BiConsumer 작업)모든 항목이 처리되거나 작업에서 예외가 발생할 때까지 맵의 각 항목에 대해 지정된 작업을 수행합니다.
SortedMap headMap(K toKey)키가 toKey보다 엄격하게 작은 키-값 쌍을 반환합니다.
NavigableMap headMap(K toKey, 부울 포함)키가 toKey보다 작은(또는 포함이 true인 경우와 같음) 키-값 쌍을 반환합니다.
Map.Entry highEntry(K 키)주어진 키보다 엄격하게 큰 최소 키를 반환하거나, 그러한 키가 없으면 null을 반환합니다.
K하이키(K키)이 맵에 지정된 키에 대한 매핑이 포함되어 있으면 true를 반환하는 데 사용됩니다.
키세트() 설정맵에 존재하는 키 컬렉션을 반환합니다.
지도.항목 lastEntry()가장 큰 키를 가진 키-값 쌍을 반환하거나, 그러한 키가 없으면 null을 반환합니다.
Map.Entry lowerEntry(K 키)주어진 키보다 엄격하게 작은 가장 큰 키와 연관된 키-값 매핑을 반환하거나, 그러한 키가 없는 경우 null을 반환합니다.
K하위키(K키)주어진 키보다 엄격하게 작은 가장 큰 키를 반환하거나, 그러한 키가 없으면 null을 반환합니다.
NavigableSet navigableKeySet()이 맵에 포함된 키의 NavigableSet 뷰를 반환합니다.
Map.Entry pollFirstEntry()이 맵의 최소 키와 연관된 키-값 매핑을 제거하고 반환하거나, 맵이 비어 있으면 null을 반환합니다.
Map.Entry pollLastEntry()이 맵에서 가장 큰 키와 연관된 키-값 매핑을 제거하고 반환하거나, 맵이 비어 있으면 null을 반환합니다.
V put(K 키, V 값)지정된 키와 함께 지정된 값을 맵에 삽입합니다.
void putAll(지도 맵)한 맵의 모든 키-값 쌍을 다른 맵으로 복사하는 데 사용됩니다.
V 대체(K 키, V 값)지정된 키에 대해 지정된 값을 대체합니다.
부울 교체(K 키, V oldValue, V newValue)지정된 키의 이전 값을 새 값으로 바꿉니다.
void replacementAll(BiFunction 함수)모든 항목이 처리되거나 함수에서 예외가 발생할 때까지 각 항목의 값을 해당 항목에 대해 지정된 함수를 호출한 결과로 바꿉니다.
NavigableMap subMap(K fromKey, 부울 fromInclusive, K toKey, 부울 toInclusive)키 범위가 fromKey에서 toKey까지인 키-값 쌍을 반환합니다.
SortedMap 하위 맵(K fromKey, K toKey)키 범위가 fromKey(포함)에서 toKey(제외)까지인 키-값 쌍을 반환합니다.
SortedMap tailMap(K fromKey)키가 fromKey보다 크거나 같은 키-값 쌍을 반환합니다.
NavigableMap tailMap(K fromKey, 부울 포함)키가 fromKey보다 큰(또는 포함이 true인 경우 같음) 키-값 쌍을 반환합니다.
boolean containKey(객체 키)맵에 지정된 키에 대한 매핑이 포함되어 있으면 true를 반환합니다.
boolean containValue(객체 값)맵이 하나 이상의 키를 지정된 값에 매핑하면 true를 반환합니다.
K첫번째키()현재 정렬된 맵에 있는 첫 번째(가장 낮은) 키를 반환하는 데 사용됩니다.
V get(객체 키)맵이 지정된 키를 매핑하는 값을 반환하는 데 사용됩니다.
K 마지막키()현재 정렬된 맵에 있는 마지막(가장 높은) 키를 반환하는 데 사용됩니다.
V 제거(객체 키)맵에서 지정된 키의 키-값 쌍을 제거합니다.
세트엔트리셋()지도에 포함된 매핑의 집합 보기를 반환합니다.
정수 크기()해시테이블에 존재하는 키-값 쌍의 수를 반환합니다.
컬렉션 값()맵에 포함된 값의 컬렉션 뷰를 반환합니다.

자바 트리맵 예

 import java.util.*; class TreeMap1{ public static void main(String args[]){ TreeMap map=new TreeMap(); map.put(100,'Amit'); map.put(102,'Ravi'); map.put(101,'Vijay'); map.put(103,'Rahul'); for(Map.Entry m:map.entrySet()){ System.out.println(m.getKey()+' '+m.getValue()); } } } 
 Output:100 Amit 101 Vijay 102 Ravi 103 Rahul 

Java TreeMap 예: 제거()

 import java.util.*; public class TreeMap2 { public static void main(String args[]) { TreeMap map=new TreeMap(); map.put(100,'Amit'); map.put(102,'Ravi'); map.put(101,'Vijay'); map.put(103,'Rahul'); System.out.println('Before invoking remove() method'); for(Map.Entry m:map.entrySet()) { System.out.println(m.getKey()+' '+m.getValue()); } map.remove(102); System.out.println('After invoking remove() method'); for(Map.Entry m:map.entrySet()) { System.out.println(m.getKey()+' '+m.getValue()); } } } 

산출:

실파 셰티
 Before invoking remove() method 100 Amit 101 Vijay 102 Ravi 103 Rahul After invoking remove() method 100 Amit 101 Vijay 103 Rahul 

Java TreeMap 예: NavigableMap

 import java.util.*; class TreeMap3{ public static void main(String args[]){ NavigableMap map=new TreeMap(); map.put(100,'Amit'); map.put(102,'Ravi'); map.put(101,'Vijay'); map.put(103,'Rahul'); //Maintains descending order System.out.println('descendingMap: '+map.descendingMap()); //Returns key-value pairs whose keys are less than or equal to the specified key. System.out.println('headMap: '+map.headMap(102,true)); //Returns key-value pairs whose keys are greater than or equal to the specified key. System.out.println('tailMap: '+map.tailMap(102,true)); //Returns key-value pairs exists in between the specified key. System.out.println('subMap: '+map.subMap(100, false, 102, true)); } } 
 descendingMap: {103=Rahul, 102=Ravi, 101=Vijay, 100=Amit} headMap: {100=Amit, 101=Vijay, 102=Ravi} tailMap: {102=Ravi, 103=Rahul} subMap: {101=Vijay, 102=Ravi} 

Java TreeMap 예: SortedMap

 import java.util.*; class TreeMap4{ public static void main(String args[]){ SortedMap map=new TreeMap(); map.put(100,'Amit'); map.put(102,'Ravi'); map.put(101,'Vijay'); map.put(103,'Rahul'); //Returns key-value pairs whose keys are less than the specified key. System.out.println('headMap: '+map.headMap(102)); //Returns key-value pairs whose keys are greater than or equal to the specified key. System.out.println('tailMap: '+map.tailMap(102)); //Returns key-value pairs exists in between the specified key. System.out.println('subMap: '+map.subMap(100, 102)); } } 
 headMap: {100=Amit, 101=Vijay} tailMap: {102=Ravi, 103=Rahul} subMap: {100=Amit, 101=Vijay} 

HashMap과 TreeMap의 차이점은 무엇입니까?

해시맵트리맵
1) HashMap은 하나의 널 키를 포함할 수 있습니다.TreeMap에는 null 키가 포함될 수 없습니다.
2) HashMap은 순서를 유지하지 않습니다.TreeMap은 오름차순을 유지합니다.

Java TreeMap 예: 도서

 import java.util.*; class Book { int id; String name,author,publisher; int quantity; public Book(int id, String name, String author, String publisher, int quantity) { this.id = id; this.name = name; this.author = author; this.publisher = publisher; this.quantity = quantity; } } public class MapExample { public static void main(String[] args) { //Creating map of Books Map map=new TreeMap(); //Creating Books Book b1=new Book(101,'Let us C','Yashwant Kanetkar','BPB',8); Book b2=new Book(102,'Data Communications & Networking','Forouzan','Mc Graw Hill',4); Book b3=new Book(103,'Operating System','Galvin','Wiley',6); //Adding Books to map map.put(2,b2); map.put(1,b1); map.put(3,b3); //Traversing map for(Map.Entry entry:map.entrySet()){ int key=entry.getKey(); Book b=entry.getValue(); System.out.println(key+' Details:'); System.out.println(b.id+' '+b.name+' '+b.author+' '+b.publisher+' '+b.quantity); } } } 

산출:

 1 Details: 101 Let us C Yashwant Kanetkar BPB 8 2 Details: 102 Data Communications & Networking Forouzan Mc Graw Hill 4 3 Details: 103 Operating System Galvin Wiley 6