Java TreeMap 데이터 구조를 사용하는 방법

Java TreeMap 데이터 구조를 사용하는 방법

Java TreeMap 클래스는 맵 인터페이스를 사용하여 트리 구조에 데이터를 저장합니다. 이 클래스는 AbstractMap 클래스를 확장하고 상위 클래스와 마찬가지로 TreeMap에는 두 가지 유형 매개변수가 있습니다. 유형 매개변수 중 하나는 TreeMap의 키를 나타내고 다른 하나는 값을 나타냅니다.





TreeMap 데이터 구조는 키-값 쌍을 저장하고 이 데이터에 대해 CRUD 작업을 수행할 수 있도록 합니다.





Java에서 TreeMap을 만드는 방법

TreeMap 클래스에는 새 TreeMap 개체를 만드는 데 사용할 수 있는 4개의 생성자가 있습니다. 기본 생성자는 네 가지 중 가장 많이 사용됩니다. 이 생성자는 인수를 사용하지 않고 빈 트리 맵을 생성합니다.





// Create a new tree map 
TreeMap<Integer,String> customers = new TreeMap<Integer,String>();

위의 코드는 고객 .

TreeMap 데이터 구조 채우기

그만큼 놓다() 메소드는 TreeMap 객체에 항목을 추가합니다. 키와 값의 두 가지 인수가 필요합니다. 임의의 순서로 트리 맵에 항목을 추가할 수 있으며 데이터 구조는 키에 따라 오름차순으로 항목을 저장합니다.



// Populate a tree map 
customers.put(105, "Jessica Jones");
customers.put(102, "Mark Williams");
customers.put(104, "Phil Blair");
customers.put(101, "Kim Brown");
customers.put(103, "Jim Riley");

위의 코드는 5명의 고객을 무작위 순서로 고객 트리 맵에 추가합니다.

TreeMap에서 항목 보기

TreeMap 클래스는 해당 데이터를 개체에 저장합니다. 따라서 트리 맵의 모든 항목을 보려면 트리 맵 개체를 콘솔에 간단히 인쇄할 수 있습니다.





// View all tree map items as an object 
System.out.println(customers);

위의 코드는 콘솔에 다음 출력을 인쇄합니다.

{101=Kim Brown, 102=Mark Williams, 103=Jim Riley, 104=Phil Blair, 105=Jessica Jones}

위의 개체는 항목을 오름차순으로 표시합니다. 다음을 사용하여 각 항목과 해당 키를 볼 수도 있습니다. 자바 for 루프 .





// View all items with an iterator 
for (Entry<Integer, String> customer : customers.entrySet()) {
System.out.println("Key: " + customer.getKey() + " Value: " + customer.getValue());
}

위의 코드는 콘솔에 다음 출력을 인쇄합니다.

Key: 101 Value: Kim Brown 
Key: 102 Value: Mark Williams
Key: 103 Value: Jim Riley
Key: 104 Value: Phil Blair
Key: 105 Value: Jessica Jones

TreeMap에서 항목 업데이트

TreeMap 클래스를 사용하면 다음을 사용하여 기존 항목을 업데이트할 수 있습니다. 바꾸다() 방법. 두 가지 교체 방법이 있습니다. 첫 번째 방법은 기존 키와 기존 키를 매핑하려는 새 값을 사용합니다.

// Replace existing value 
customers.replace(101,"Kim Smith");
System.out.println(customers);

위의 코드는 콘솔에 다음 개체를 인쇄합니다.

{101=Kim Smith, 102=Mark Williams, 103=Jim Riley, 104=Phil Blair, 105=Jessica Jones}

보시다시피 킴 브라운 지금이다 킴 스미스 . 두 번째 replace() 메서드는 기존 키, 키의 현재 값 및 키에 매핑하려는 새 값을 사용합니다.

// Replace existing value 
customers.replace(103,"Jim Riley", "Michelle Noah");
System.out.println(customers);

위의 코드는 콘솔에 다음 개체를 인쇄합니다.

{101=Kim Brown, 102=Mark Williams, 103=Michelle Noah, 104=Phil Blair, 105=Jessica Jones}

위의 개체에서 미셸 노아 대체 짐 라일리 .

TreeMap에서 항목 삭제

트리 맵에서 단일 항목을 제거하려면 제거하다() 방법이 유일한 옵션입니다. 제거하려는 항목과 연결된 키를 사용하여 삭제된 값을 반환합니다.

// Remove an item 
customers.remove(104);
System.out.println(customers);

위의 코드를 실행하면 콘솔에 다음 개체가 인쇄됩니다.

{101=Kim Smith, 102=Mark Williams, 103=Michelle Noah, 105=Jessica Jones}

이것 자바 클래스 또한 가지고있다 분명한() 트리 맵의 모든 항목을 삭제할 수 있는 방법입니다.

TreeMap 대 HashMap Java 클래스

TreeMap과 HashMap은 가장 널리 사용되는 Java 맵 클래스입니다. 둘 다 AbstractMap 클래스를 확장합니다. 이 관계는 TreeMap 및 HashMap 클래스에 많은 동일한 기능에 대한 액세스를 제공합니다.

그들은 서로 트위터를 팔로우합니까?

그러나 이 두 맵 클래스 사이에는 몇 가지 주목할 만한 차이점이 있습니다. TreeMap은 Map 인터페이스의 Red-Black 트리 구현을 사용하는 반면 HashMap은 해시 테이블을 사용합니다. HashMap을 사용하면 단일 널 키를 저장할 수 있지만 TreeMap은 그렇지 않습니다. 마지막으로 HashMap은 TreeMap보다 빠릅니다. 전자의 알고리즘 속도는 O(1)이고 후자의 알고리즘 속도는 O(log(n))입니다.