Table of Contents
1. Đặc điểm
Những điểm quan trọng về lớp TreeMap trong java cần nhớ là:
- TreeMap lưu trữ dữ liệu dưới dạng cặp key và value.
- TreeMap chỉ chứa các key duy nhất.
- TreeMap KHÔNG cho phép bất kỳ key nào là null và nhưng có thể có nhiều giá trị null.
- TreeMap duy trì các phần tử được thêm vào theo thứ tự key tăng dần.
2. Hierarchy của lớp TreeMap

Lớp java.util.TreeMap được định nghĩa như sau:
public class TreeMap<K,V> extends AbstractMap<K,V> implements NavigableMap<K,V>, Cloneable, java.io.Serializable { }
Trong đó:
- K: đây là kiểu key để lưu trữ.
- V: đây là kiểu giá trị được ánh xạ.
3. Các phương thức khởi tạo (constructor) của lớp TreeMap
- LinkedHashMap(): khởi tạo một map trống.
- LinkedHashMap(Map<? extends K, ? extends V> m): khởi tạo một map với các phần tử của map m.
4. Các phương thức (method) của lớp TreeMap
Xem thêm các phương thức của Map ở bài viết Map Interface trong java.
5. Ví dụ minh họa
5.1. Ví dụ sử dụng TreeMap với kiểu dữ liệu cơ bản (Wrapper)
package com.maixuanviet.collection.treemap; import java.util.Map; import java.util.Map.Entry; import java.util.TreeMap; public class LinkedHashMapExample { public static void main(String args[]) { // init map Map<Integer, String> map = new TreeMap<Integer, String>(); map.put(1, "Basic java"); map.put(2, "OOP"); map.put(4, "Multi-Thread"); map.put(3, "Collection"); // show map using method keySet() for (Integer key : map.keySet()) { String value = map.get(key); System.out.println(key + " = " + value); } System.out.println("---"); // show map using method keySet() for (Entry<Integer, String> entry : map.entrySet()) { Integer key = entry.getKey(); String value = entry.getValue(); System.out.println(key + " = " + value); } } }
Kết quả thực thi chương trình trên:
1 = Basic java 2 = OOP 3 = Collection 4 = Multi-Thread --- 1 = Basic java 2 = OOP 3 = Collection 4 = Multi-Thread
5.2. Ví dụ sử dụng TreeMap với key có kiểu String, value có kiểu Student
package com.maixuanviet.collection.map; public class Student { private int id; private String name; public Student(int id, String name) { this.id = id; this.name = name; } @Override public String toString() { return "Student [id=" + id + ", name=" + name + "]"; } public int getId() { return id; } public String getName() { return name; } }
package com.maixuanviet.collection.treemap; import java.util.Map; import java.util.Map.Entry; import java.util.TreeMap; public class LinkedHashMapExample2 { public static void main(String args[]) { // Student's data Student student1 = new Student(1, "Student 1"); Student student2 = new Student(2, "Student 2"); Student student3 = new Student(3, "Student 3"); Student student4 = new Student(4, "Student 4"); // init map Map<Integer, Student> map = new TreeMap<Integer, Student>(); map.put(student1.getId(), student1); map.put(student2.getId(), student2); map.put(student4.getId(), student4); map.put(student3.getId(), student3); // show map using method keySet() for (Integer key : map.keySet()) { Student value = map.get(key); System.out.println(key + " = " + value); } System.out.println("---"); // show map using method keySet() for (Entry<Integer, Student> entry : map.entrySet()) { Integer key = entry.getKey(); Student value = entry.getValue(); System.out.println(key + " = " + value); } } }
Kết quả thực thi chương trình trên:
1 = Student [id=1, name=Student 1] 2 = Student [id=2, name=Student 2] 3 = Student [id=3, name=Student 3] 4 = Student [id=4, name=Student 4] --- 1 = Student [id=1, name=Student 1] 2 = Student [id=2, name=Student 2] 3 = Student [id=3, name=Student 3] 4 = Student [id=4, name=Student 4]
Related posts:
Convert a Map to an Array, List or Set in Java
Java Program to Implement Fisher-Yates Algorithm for Array Shuffling
Java Program to Implement PrinterStateReasons API
Spring MVC Setup with Kotlin
How to Use if/else Logic in Java 8 Streams
Java Program to Generate Date Between Given Range
Java Program to Perform Search in a BST
Jackson Annotation Examples
Spring JDBC
Java Program to Implement Hash Tables Chaining with Doubly Linked Lists
Ways to Iterate Over a List in Java
Java Program to Implement Suffix Tree
Marker Interface trong Java
The Modulo Operator in Java
A Guide to @RepeatedTest in Junit 5
Predicate trong Java 8
Tips for dealing with HTTP-related problems
Java Program to Implement Unrolled Linked List
Removing all Nulls from a List in Java
Java Program to Implement Doubly Linked List
Java Program to Generate a Random UnDirected Graph for a Given Number of Edges
Java Multi-line String
Converting Iterator to List
Java Program to Implement Self Balancing Binary Search Tree
Java Program to Implement Knight’s Tour Problem
How to Remove the Last Character of a String?
Using a Custom Spring MVC’s Handler Interceptor to Manage Sessions
Spring Boot - Bootstrapping
Java Program to Check if a Point d lies Inside or Outside a Circle Defined by Points a, b, c in a Pl...
An Introduction to Java.util.Hashtable Class
Java Program to Find the Peak Element of an Array O(n) time (Naive Method)
Batch Processing with Spring Cloud Data Flow