Các điểm quan trọng về lớp TreeMap trong java là:
- HashMap lưu trữ dữ liệu dưới dạng cặp key và value.
- Nó chứa các key duy nhất.
- Nó KHÔNG cho phép bất kỳ key nào là null và nhưng có thể có nhiều giá trị null.
- Nó duy trì các phần tử được thêm vào theo thứ tự key tăng dần.
Sự khác biệt giữa HashMap và TreeMap là gì?
HashMap | TreeMap |
---|---|
1) HashMap có thể chứa một key là null. | TreeMap KHÔNG thể chứa bất kỳ key nào là null. |
2) HashMap duy trì các phần tử không theo thứ tự. | TreeMap duy trì các phần tử theo thứ tự key tăng dần. |
Hierarchy của lớp TreeMap

Khai báo của lớp TreeMap
Dưới đây là khai báo của lớp java.util.TreeMap trong java
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ạ.
Ví dụ về TreeMap trong java
Ví dụ 1: Sử dụng phương thức remove().
package vn.viettuts.collection; import java.util.Map; import java.util.Set; import java.util.TreeMap; public class TreeMapExample1 { /** * main * * @author viettuts.vn * @param args */ public static void main(String args[]) { // init treeMap Map<Integer, String> treeMap = new TreeMap<Integer, String>(); // add elements to treeMap treeMap.put(1, "Java"); treeMap.put(3, "C++"); treeMap.put(2, "PHP"); treeMap.put(4, "Python"); // show treeMap show(treeMap); // remove element treeMap.remove(4); // show treeMap after remove System.out.println("After remove:"); // show treeMap show(treeMap); } /** * show map * * @param viettuts.vn */ public static void show(Map<Integer, String> map) { Set<Integer> keySet = map.keySet(); for (Integer key : keySet) { System.out.println(key + " " + map.get(key)); } } }
Kết quả:
1 Java 2 PHP 3 C++ 4 Python After remove: 1 Java 2 PHP 3 C++
Ví dụ 2: TreeMap với key có kiểu String, value có kiểu Student.
Lớp Student.java
/** * Student class * * @author viettuts.vn */ class Student implements Comparable<Student> { private String name; private int age; private String address; public Student() { } public Student(String name, int age, String address) { super(); this.name = name; this.age = age; this.address = address; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } @Override public String toString() { return "Student@name=" + name + ",age=" + age + ",address=" + address; } }
Lớp TreeMapExample2.java
package vn.viettuts.collection; import java.util.Map; import java.util.Set; import java.util.TreeMap; public class TreeMapExample2 { /** * main * * @author viettuts.vn * @param args */ public static void main(String args[]) { // init treeMap Map<String, Student> treeMap = new TreeMap<String, Student>(); // add elements to treeMap treeMap.put("1", new Student("A", 12, "Hanoi")); treeMap.put("3", new Student("C", 13, "Hanoi")); treeMap.put("2", null); treeMap.put("4", new Student("D", 14, "Hanoi")); treeMap.put("5", null); // show treeMap show(treeMap); } /** * show map * * @param viettuts.vn */ public static void show(Map<String, Student> map) { Set<String> keySet = map.keySet(); for (String key : keySet) { System.out.println(key + " " + map.get(key)); } } }
Kết quả:
1 Student@name=A,age=12,address=Hanoi 2 null 3 Student@name=C,age=13,address=Hanoi 4 Student@name=D,age=14,address=Hanoi 5 null