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:
Java Program to implement Bi Directional Map
Java Program to Implement Flood Fill Algorithm
Create a Custom Exception in Java
Jackson – Marshall String to JsonNode
Java Program to Create the Prufer Code for a Tree
Tránh lỗi NullPointerException trong Java như thế nào?
Tính đóng gói (Encapsulation) trong java
Hướng dẫn Java Design Pattern – Bridge
Hướng dẫn sử dụng biểu thức chính quy (Regular Expression) trong Java
Using Custom Banners in Spring Boot
Java Program to Solve the Fractional Knapsack Problem
String Processing with Apache Commons Lang 3
Java 8 Stream findFirst() vs. findAny()
Spring MVC Custom Validation
wait() and notify() Methods in Java
Java Program to Check Cycle in a Graph using Topological Sort
Java Program to Represent Linear Equations in Matrix Form
Java CyclicBarrier vs CountDownLatch
Hướng dẫn sử dụng Java Generics
Java Program to Implement Pagoda
Chuyển đổi từ HashMap sang ArrayList
Server-Sent Events in Spring
Java Program to Perform Sorting Using B-Tree
Spring Boot - Tomcat Deployment
File Upload with Spring MVC
Spring WebClient vs. RestTemplate
Java Program to Implement Sorted Vector
Creating a Web Application with Spring 5
Converting Between Byte Arrays and Hexadecimal Strings in Java
Java Program to Use the Bellman-Ford Algorithm to Find the Shortest Path
Java Program to Implement LinkedBlockingQueue API
Java Program to Find MST (Minimum Spanning Tree) using Prim’s Algorithm