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 Pagoda
Java Program to Implement Sorted Vector
Spring Boot - Enabling Swagger2
Send an email with an attachment
Java Program to Implement Rope
Java Program to Find the Number of Ways to Write a Number as the Sum of Numbers Smaller than Itself
OAuth2 for a Spring REST API – Handle the Refresh Token in AngularJS
Java Timer
ThreadPoolTaskExecutor corePoolSize vs. maxPoolSize
Constructor Dependency Injection in Spring
Java Program to Implement Insertion Sort
Java Program to Implement Leftist Heap
How to Return 404 with Spring WebFlux
The Registration API becomes RESTful
Functional Interface trong Java 8
Java Program to Implement AA Tree
Simplify the DAO with Spring and Java Generics
Spring Boot - Creating Docker Image
Spring Boot - Admin Client
Spring Boot - Introduction
Spring Boot - Flyway Database
An Intro to Spring Cloud Task
Spring Security Form Login
A Guide To UDP In Java
Spring Boot - Tracing Micro Service Logs
How to Convert List to Map in Java
Guava Collections Cookbook
Java Program to Perform Preorder Non-Recursive Traversal of a Given Binary Tree
OAuth2 for a Spring REST API – Handle the Refresh Token in Angular
Java Program to Implement Sieve Of Atkin
Java Program to Implement Heap
Check If a String Is Numeric in Java