VietTuts

Tự Học Lập Trình Online

  • Home
  • Java
  • Servlet
  • JSP
  • Struts2
  • Hibernate
  • Spring
  • MyBatis
  • Java WS
  • C
  • C++
  • C#
  • Python
  • PHP
  • Excel
  • VBA
  • Web
    • JavaScript
    • JQUERY
    • JSON
    • AJAX
    • CSS
    • HTML
    • HTML5
    • Node.js
    • Angular 7
  • SQL
    • MySQL
    • SQL Server
  • Misc
    • Eclipse
    • Phần mềm tiện ích
    • Cấu trúc DL&GT
    • Selenium Test
Java cơ bản Các khái niệm Java OOPs

Java Collections

Collections là gì? List Interface trong java ArrayList trong java LinkedList trong java ArrayList vs LinkedList Set Interface trong java HashSet trong java HashSet trong Java hoạt động như thế nào? LinkedHashSet trong java TreeSet trong java Map Interface trong java HashMap trong java HashMap trong Java hoạt động như thế nào? LinkedHashMap trong java TreeMap trong java Hashtable trong java HashMap vs Hashtable EnumSet trong java EnumMap trong java Lớp Collections trong java Sorting trong Collections Comparable trong java Comparator trong java Comparable vs Comparator Lớp Properties trong java ArrayList vs Vector Array vs ArrayList Iterator trong Java
Java AWT Java Swing Java I/O Ví Dụ Java I/O Java JDBC Các tính năng mới trong java Lập Trình Mạng Với Java Các Tính Năng Mới Trong Java Bài Tập Java Có Lời Giải Câu hỏi phỏng vấn java
1 / 3
❮ ❯

TreeMap trong java


LinkedHashMap trong java
Hashtable trong java

Nội dung chính

  • Lớp TreeMap trong Java
  • Sự khác biệt giữa HashMap và TreeMap là gì?
  • Hierarchy của lớp TreeMap trong Java
  • Khai báo của lớp TreeMap trong Java
  • Constructor của lớp TreeMap trong Java
  • Phương thức của lớp TreeMap trong Java
  • Khởi tạo một TreeMap
  • Duyệt và hiển thị các phần tử có trong TreeMap
    • Hiển thị theo tên của TreeMap
    • Sử dụng vòng lặp for - duyệt các phần tử của TreeMap
    • Sử dụng Map.Entry interface - duyệt các phần tử của TreeMap
    • Sử dụng Iterator - duyệt các phần tử của TreeMap
  • Truy cập phần tử của TreeMap
  • Cập nhật giá trị của phần tử TreeMap
  • Xóa phần tử TreeMap
  • Tạo TreeMap có kiểu generic là đối tượng do người dùng định nghĩa

Lớp TreeMap trong Java

Lớp TreeMap trong java là một lớp kế thừa lớp AbstractMap và triển khai của NavigableMap Interface (NavigableMap kế thừa SortedMap, SortedMap kế thừa Map interface). trong Collections Framework nên nó sẽ có một vài đặc điểm và phương thức tương đồng với Map và SortedMap và NavigableMap. TreeMap được sử dụng để lưu trữ các phần tử dưới dạng "key/value". Key và value là kiểu dữ liệu bất kỳ, và bạn có thể try cập các giá trị của HasMap bằng một key cụ thể.

Các điểm quan trọng về lớp TreeMap trong java là:

  • TreeMap 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ì?

HashMapTreeMap
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 trong Java

TreeMap trong java

Khai báo của lớp TreeMap trong Java

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ạ.

Constructor của lớp TreeMap trong Java

Constructor Mô tả
TreeMap() Nó được sử dụng để khởi tạo một TreeMap trống.
TreeMap(Comparator comparator) Nó được sử dụng để khởi tạo một TreeMap trống, được sắp xếp theo comparator đã cho.
TreeMap(Map m) Nó được sử dụng để khởi tạo một TreeMap chứa các phần tử được copy từ map đã cho, được sắp xếp theo key một cách tự nhiên.
TreeMap(SortedMap m) Nó được sử dụng để khởi tạo một TreeMap chứa các phần tử được copy từ map đã cho, được sắp xếp theo SortedMap đã chỉ định.

Phương thức của lớp TreeMap trong Java

Sau đây là các phương thức của lớp TreeMap hay được sử dụng trong lập trình Java.

Phương thức Mô tả
void clear() Xóa tất cả các phần tử của TreeMap.
Object clone() Trả về một bản copy của TreeMap.
boolean containsKey(Object key) Trả về true nếu TreeMap chứa một phần tử có key được chỉ định.
boolean containsValue(Object value) Trả về true nếu TreeMap chứa một phần tử có giá trị (value) được chỉ định.
Set entrySet() Trả về Collection view các ánh xạ có trong TreeMap.
Object get(Object key) Trả về giá trị của key được chỉ định.
boolean isEmpty() Trả về true nếu TreeMap trống.
Set keySet() Trả về một Set interface chứa tất cả các key của TreeMap.
Object put(Object key, Object value) Thêm một cặp key-value vào TreeMap.
void putAll(Map t) Sao chép các phần tử của Map được chỉ định vào TreeMap.
Object remove(Object key) Xóa một phần tử có key được chỉ định ra khởi TreeMap.
int size() Trả về số phần tử của TreeMap.
Collection values() Trả về Collection của các giá trị có trong TreeMap.
Object firstKey() Trả về key đầu tiên của map đã được sắp xếp.
Object lastKey() Trả về key cuối cùng của map đã được sắp xếp.
Collection values() Trả về Collection của các giá trị có trong TreeMap.
SortedMap subMap((K startKey, K endKey) Trả về một phần của TreeMap bắt đầu từ phần tử có key startKey đến phần tử có key endKey.

Khởi tạo một TreeMap

Để khai báo một TreeMap, chúng ta cần phải import gói thư viện java.util.TreeMap của Java. Cú pháp import như sau:


// import gói thư viện java.util.TreeMap
import java.util.TreeMap;

public class KhoiTaoTreeMap {
    public static void main(String[] args) {
        // khai báo 1 TreeMap có tên là map1
        // có key là String và value là String
        TreeMap<String, String> map1 = new TreeMap<String, String>();
    }
}

Duyệt và hiển thị các phần tử có trong TreeMap

Để hiển thị các phần tử có trong ArrayList, chúng ta có các cách như sau:

Hiển thị theo tên của TreeMap

Bạn có thể sử dụng lệnh System.out.println(treeMap) để hiển thị ra thông tin của đối tượng treeMap. Ví dụ:


package vn.viettuts.collection.treemap;

import java.util.TreeMap;

public class TreeMapExample1 {
    /**
     * main
     * 
     * @author viettuts.vn
     * @param args
     */
    public static void main(String args[]) {
        // khoi tao map
        TreeMap<String, String> map = new TreeMap<String, String>();
        // them cac phan tu vao map
        map.put("J", "Java");
        map.put("C", "C++");
        map.put("P", "PHP");
        map.put("Py", "Python");
        // hien thi map
        System.out.println(map);
    }
}

Chạy chương trình trên cho kết quả như sau:

Hiển thị theo tên của TreeMap

Sử dụng vòng lặp for - duyệt các phần tử của TreeMap

Ví dụ này chúng ta sẽ sử dụng hàm keySet() để lấy ra một đối tượng Set chứa các key của TreeMap. Sau đó sử dụng vòng lặp for để lặp các key của đối tượng Set. Sử dụng các key này để lấy ra giá trị tương ứng được lưu trữ trong đối tượng TreeMap:


package vn.viettuts.collection.treemap;

import java.util.Map;
import java.util.Set;
import java.util.TreeMap;

/**
 * Vi du su dung vong lap for duyet cac phan tu cua TreeMap
 * 
 * @author viettuts.vn
 */
public class TreeMapExample2 {

    public static void main(String args[]) {
        // khoi tao map
        TreeMap<String, String> map = new TreeMap<String, String>();
        // them cac phan tu vao map
        map.put("J", "Java");
        map.put("C", "C++");
        map.put("P", "PHP");
        map.put("Py", "Python");
        // hien thi map
        show(map);
    }
    
    public static void show(Map<String, String> map) {
        Set<String> keySet = map.keySet();
        for (String key : keySet) {
            System.out.println(key + " - " + map.get(key));
        }
    }
}

Chạy chương trình trên cho kết quả như sau:

TreeMap trong Java

Sử dụng Map.Entry interface - duyệt các phần tử của TreeMap

Bạn có thể sử dụng phương thức entrySet() để duyệt các phần tử của TreeMap, phương thức này trả về một đối tượng Map.Entry. Vi dụ:


package vn.viettuts.collection.treemap;

import java.util.TreeMap;
import java.util.Map;
 
public class TreeMapExample7 {
    public static void main(String args[]) {
        // khoi tao map
        TreeMap<String, String> map = new TreeMap<String, String>();
        // them cac phan tu vao map
        map.put("J", "Java");
        map.put("C", "C++");
        map.put("P", "PHP");
        map.put("Py", "Python");
        // hien thi map
        for (Map.Entry<String, String> entry : map.entrySet()) {
            System.out.println(entry.getKey() + " - " + entry.getValue());
        }
    }
}

Chạy chương trình trên cho kết quả như sau:

TreeMap trong Java

Sử dụng Iterator - duyệt các phần tử của TreeMap

Bạn có thể sử dụng phương thức keySet().iterator() để duyệt các phần tử của TreeMap. Vi dụ:


package vn.viettuts.collection.treemap;

import java.util.Iterator;
import java.util.TreeMap;

public class TreeMapExample8 {
    public static void main(String args[]) {
        // khoi tao map
        TreeMap<String, String> map = new TreeMap<String, String>();
        // them cac phan tu vao map
        map.put("J", "Java");
        map.put("C", "C++");
        map.put("P", "PHP");
        map.put("Py", "Python");
        // show TreeMap
        Iterator<String> itr = map.keySet().iterator();
        while (itr.hasNext()) {
            System.out.println(map.get(itr.next()));
        }
    }
}

Chạy chương trình trên cho kết quả như sau:

TreeMap trong Java

Truy cập phần tử của TreeMap

Phương thức get(key) trả về giá trị của phần tử có key đã chỉ định, ví dụ:


package vn.viettuts.collection.treemap;

import java.util.TreeMap;

/**
 * truy cap phan tu cua TreeMap
 * 
 * @author viettuts.vn
 */
public class TreeMapExample3 {

    public static void main(String args[]) {
        // khoi tao map
        TreeMap<String, String> map = new TreeMap<String, String>();
        // them cac phan tu vao map
        map.put("J", "Java");
        map.put("C", "C++");
        map.put("P", "PHP");
        map.put("Py", "Python");
        // hien thi TreeMap
        System.out.println("Phan tu co key = 1 la: " + map.get("J"));
        System.out.println("Phan tu co key = 2 la: " + map.get("P"));
    }
}

Chạy chương trình trên cho kết quả như sau:

TreeMap trong Java

Cập nhật giá trị của phần tử TreeMap

Phương thức put() được sử dụng để thêm phần tử, đồng thời bạn cũng có thể sử dụng phương thức này để cập nhật giá trị của phần tử TreeMap, ví dụ:


package vn.viettuts.collection.treemap;

import java.util.TreeMap;

/**
 * cap nhat phan tu cua TreeMap
 * 
 * @author viettuts.vn
 */
public class TreeMapExample4 {

    public static void main(String args[]) {
        // khoi tao map
        TreeMap<String, String> map = new TreeMap<String, String>();
        // them cac phan tu vao map
        map.put("J", "Java");
        map.put("C", "C++");
        map.put("P", "PHP");
        map.put("Py", "Python");
        // hien thi map
        System.out.println(map);
        // cap nhat gia tri cua phan tu co key = 4
        map.put("Py", "Angular8");
        // hien thi map
        System.out.println(map);
    }
}

Chạy chương trình trên cho kết quả như sau:

TreeMap trong Java

Xóa phần tử TreeMap

Bạn có thể sử dụng phương thức remove() để xóa một phần tử, hoặc phương thức clear() để xóa hoàn toàn các phần tử của một TreeMap. Ví dụ:


package vn.viettuts.collection.treemap;

import java.util.TreeMap;

/**
 * Xoa phan tu cua map
 * 
 * @author viettuts.vn
 */
public class TreeMapExample5 {

    public static void main(String args[]) {
        // khoi tao map
        TreeMap<String, String> map = new TreeMap<String, String>();
        // them cac phan tu vao map
        map.put("J", "Java");
        map.put("C", "C++");
        map.put("P", "PHP");
        map.put("Py", "Python");
        // hien thi map
        System.out.println(map);
        // xoa phan tu co key = 4
        map.remove("Py");
        // hien thi map
        System.out.println(map);
        // xoa toan bo map
        map.clear();
        // hien thi map
        System.out.println(map);
    }
}

Chạy chương trình trên cho kết quả như sau:

TreeMap trong Java

Tạo TreeMap có kiểu generic là đối tượng do người dùng định nghĩa

Ví dụ tạo một lớp Student, sau đó tạo một đối tượng TreeMap với key có kiểu String, value có kiểu Student:

Lớp Student.java


package vn.viettuts.collection.treemap;

/**
 * Student class
 * 
 * @author viettuts.vn
 */
public class 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 TreeMapExample6.java


package vn.viettuts.collection.treemap;

import java.util.TreeMap;
import java.util.Map;
import java.util.Set;

public class TreeMapExample6 {
    /**
     * main
     * 
     * @author viettuts.vn
     * @param args
     */
    public static void main(String args[]) {
        // khoi tao map
        TreeMap<String, String> map = new TreeMap<String, String>();
        // them cac phan tu vao map
        map.put("J", "Java");
        map.put("C", "C++");
        map.put("P", "PHP");
        map.put("Py", "Python");
        // show map
        show(map);
    }

    public static void show(Map<String, String> map) {
        Set<String> keySet = map.keySet();
        for (String key : keySet) {
            System.out.println(key + " - " + map.get(key));
        }
    }
}

Chạy chương trình trên cho kết quả như sau:

TreeMap trong Java
LinkedHashMap trong java
Hashtable trong java

Bài viết liên quan:

  • Mảng (Array) trong java
  • ArrayList trong java
  • Sự khác nhau giữa Array với ArrayList
  • Sắp xếp các phần tử của List
  • Sự khác nhau giữa ArrayList và Vector
  • HashSet trong java
  • HashMap trong java
  • Sự khác nhau giữa HashMap và Hashtable
  • List câu hỏi phỏng vấn Java Collection

Recent Updates

Xuất dữ liệu ra màn hình console trong JavaCài đặt môi trường JavaJava Swing - Bài tập quản lý sinh viên trong javaLinkedList trong javaArrayList trong javaBài tập java có lời giảiSử dụng Javascript trong HTMLToán tử dấu 2 chấm (::) trong Java 8Lambda Expression - Biểu thức Lambda trong java 8Collection trong C#Bài tập Java - Sắp xếp nhanh (Quick Sort) trong JavaBài tập Java - Sắp xếp chèn (Insertion Sort) trong JavaSắp Tết 2026 Rồi! - Còn bao nhiêu ngày nữa là đến tết 2026?

VietTuts on facebook

Học Lập Trình Online Miễn Phí - VietTuts.Vn
Danh Sách Bài Học

Học Java | Hibernate | Spring
Học Excel | Excel VBA
Học Servlet | JSP | Struts2
Học C | C++ | C#
Học Python
Học SQL

Bài Tập Có Lời Giải

Bài tập Java
Bài tập C
Bài tập C++
Bài tập C#
Bài tập Python
Ví dụ Excel VBA

Câu Hỏi Phỏng Vấn

201 câu hỏi phỏng vấn java
25 câu hỏi phỏng vấn servlet
75 câu hỏi phỏng vấn jsp
52 câu hỏi phỏng vấn Hibernate
70 câu hỏi phỏng vấn Spring
57 câu hỏi phỏng vấn SQL

Scroll back to top

Copyright © 2016 VietTuts.Vn all rights reserved. | Liên hệ | Chính sách - riêng tư | sitemap.html | sitemap_index.xml