Giới thiệu ngắn gọn về TreeMap trong Java với các ví dụ



Bài viết này sẽ cung cấp cho bạn kiến ​​thức chi tiết và toàn diện về TreeMap trong Java với các ví dụ về các phương thức và hàm tạo.

Thực hiện một giao diện Bản đồ trong Java là một nhiệm vụ rất quan trọng. Với mục đích này, chúng tôi có TreeMapBản đồ băm . Trong bài viết này, trọng tâm của chúng tôi sẽ là Sơ đồ cây trong Theo thứ tự sau:

Sơ đồ cây trong Java là gì?

Sơ đồ cây trong Java được sử dụng để triển khai giao diện Bản đồ và Bản đồ điều hướng cùng với Lớp trừu tượng. Bản đồ được sắp xếp theo thứ tự tự nhiên của các khóa của nó hoặc bởi một Bộ so sánh được cung cấp tại thời điểm tạo bản đồ, tùy thuộc vào phương thức khởi tạo nào được sử dụng. Điều này chứng tỏ đây là một cách hiệu quả để sắp xếp và lưu trữ các cặp khóa-giá trị.





TreeMap-in-JavaThứ tự lưu trữ được duy trì bởi biểu đồ dạng cây phải nhất quán với bằng giống như bất kỳ bản đồ được sắp xếp nào khác, bất kể các trình so sánh rõ ràng. Treemapviệc triển khai không được đồng bộ hóa theo nghĩa là nếu một bản đồ được truy cập bởi nhiều luồng, đồng thời và ít nhất một trong các luồng sửa đổi bản đồ về cấu trúc, nó phải được đồng bộ hóa bên ngoài.

Các tính năng của TreeMaps

  • Lớp này là một thành viên của Java Collections Framework.



  • Lớp này triển khai các giao diện Bản đồ bao gồm NavigableMap, SortedMap và mở rộng AbstractMap

  • TreeMap trong Java không cho phép các khóa rỗng (như Bản đồ) và do đó một NullPointerException được ném ra. Tuy nhiên, nhiều giá trị null có thể được liên kết với các khóa khác nhau.

    đúng lúc trình biên dịch java
  • Tất cả các cặp Map.Entry được trả về bởi các phương thức trong lớp này và các khung nhìn của nó đại diện cho ảnh chụp nhanh của các ánh xạ tại thời điểm chúng được tạo ra.



  • Chúng không hỗ trợ phương thức Entry.setValue.

    chuyển đổi từ double sang int

Những điểm quan trọng cần nhớ

  1. Ngoài việc triển khai giao diện Bản đồ, Java TreeMap cũng triển khai Bản đồ NavigableMap và gián tiếp triển khai giao diện Bản đồ sắp xếp. TreeMap cũng mở rộng lớp AbstractMap.

  2. Các mục nhập TreeMap được sắp xếp theo thứ tự tự nhiên của các khóa của nó. Nó cũng cung cấp một phương thức khởi tạo để cung cấp Bộ so sánh được sử dụng để đặt hàng. Vì vậy, nếu bạn đang sử dụng bất kỳ lớp nào làm khóa, hãy đảm bảo rằng lớp đó đang triển khai giao diện Có thể so sánh để sắp xếp tự nhiên. Kiểm tra các câu hỏi phỏng vấn bộ sưu tập java để hiểu tầm quan trọng của các phương pháp này.

  3. Việc triển khai Java TreeMap cung cấp chi phí thời gian log (n) được đảm bảo cho các hoạt động chứa, lấy, đặt và xóa.

  4. TreeMap không được đồng bộ hóa và do đó không an toàn cho chuỗi. Đối với môi trường đa luồng, bạn có thể nhận được một gói được đồng bộ hóa bằng cách sử dụng phương thức Collections.synchronizedSortedMap.

  5. Các phương thức TreeMap để lấy bộ khóa và các giá trị trả về Iterator có bản chất là không nhanh, vì vậy bất kỳ sửa đổi đồng thời nào cũng sẽ ném ra ConcurrentModificationException.

  6. TreeMap trong java không cho phép các khóa rỗng, tuy nhiên, bạn có thể có nhiều giá trị rỗng được liên kết với các khóa khác nhau.

Các trình tạo trong TreeMap

Người xây dựng Sự miêu tả
TreeMap () Tạo một treemap trống sẽ được sắp xếp theo thứ tự tự nhiên của các khóa.
TreeMap (So sánh bộ so sánh) Xây dựng một bản đồ dựa trên cây trống sẽ được sắp xếp bằng phép so sánh Bộ so sánh.
TreeMap (Bản đồ m) Khởi tạo một treemap với các mục từ m, sẽ được sắp xếp theo thứ tự tự nhiên của các khóa.
Bản đồ cây (SortedMap sm) Khởi tạo một treemap với các mục từ sm SortedMap, sẽ được sắp xếp theo thứ tự như sm.

Các phương thức trong TreeMap

phương pháp Sự miêu tả
void clear () Loại bỏ tất cả các ánh xạ khỏi Sơ đồ cây này.
Bản sao đối tượng () Trả về một bản sao cạn của phiên bản TreeMap này.
Bộ so sánh so sánh () Trả về bộ so sánh được sử dụng để sắp xếp thứ tự bản đồ này hoặc giá trị rỗng nếu bản đồ này sử dụng thứ tự tự nhiên của các khóa.
boolean chứaKey (Khóa đối tượng) Trả về true nếu bản đồ này chứa một ánh xạ cho khóa được chỉ định.
boolean containsValue (Giá trị đối tượng) Trả về true nếu bản đồ này ánh xạ một hoặc nhiều khóa đến giá trị được chỉ định.
Đặt entrySet () Trả về dạng xem tập hợp của các ánh xạ có trong bản đồ này.
Đối tượng firstKey () Trả về khóa đầu tiên (thấp nhất) hiện có trong bản đồ được sắp xếp này.
Đối tượng nhận (Khóa đối tượng) Trả về giá trị mà bản đồ này ánh xạ khóa được chỉ định.
SortedMap headMap (Object toKey) Trả về chế độ xem một phần của bản đồ này có các khóa hoàn toàn nhỏ hơn toKey.
Đặt keySet () Trả về chế độ xem Tập hợp của các khóa có trong bản đồ này.
Đối tượng lastKey () Trả về khóa cuối cùng (cao nhất) hiện tại trong bản đồ được sắp xếp này.
Đặt đối tượng (Khóa đối tượng, Giá trị đối tượng) Liên kết giá trị được chỉ định với khóa được chỉ định trong bản đồ này.
void putAll (Bản đồ bản đồ) Sao chép tất cả các ánh xạ từ bản đồ được chỉ định vào bản đồ này.
Loại bỏ đối tượng (Khóa đối tượng) Xóa ánh xạ cho khóa này khỏi Bản đồ cây này nếu có.
int size () Trả về số lượng ánh xạ khóa-giá trị trong bản đồ này.
Bản đồ con SortedMap (Object fromKey, Object toKey) Trả về chế độ xem một phần của bản đồ này có các khóa từ Khóa, bao gồm, đến Khóa, dành riêng.
SortedMap tailMap (Đối tượng fromKey) Trả về chế độ xem của một phần bản đồ này có các khóa lớn hơn hoặc bằng fromKey.
Giá trị bộ sưu tập () Trả về chế độ xem bộ sưu tập của các giá trị có trong bản đồ này.

Ví dụ về TreeMap trong Java

import java.util.TreeMap public class TreeMapMain {public static void main (String args []) {// TreeMap với Country là key và capital as value // TreeMap lưu trữ các phần tử theo thứ tự tự nhiên của các khóa. TreeMap countryCapitalMap = new TreeMap () countryCapitalMap.put ('India', 'Delhi') countryCapitalMap.put ('Japan', 'Tokyo') countryCapitalMap.put ('France', 'Paris') countryCapitalMap.put ('Russia' , 'Moscow') System.out.println ('-----------------------------') // Lặp lại Sơ đồ cây bằng keySet ( ) và cho mỗi vòng lặp System.out.println ('Lặp lại Sơ đồ cây bằng keySet () và cho mỗi vòng lặp') cho (Chuỗi countryKey: countryCapitalMap.keySet ()) {System.out.println ('Quốc gia:' + countryKey + ' và Capital: '+ countryCapitalMap.get (countryKey))} System.out.println (' ----------------------------- ' )}}

Đầu ra:

làm cách nào để biên dịch một chương trình java

Với điều này, chúng ta kết thúc bài viết Sơ đồ cây trong Java này. C heck out của Edureka, một công ty học trực tuyến đáng tin cậy với mạng lưới hơn 250.000 người học hài lòng trải dài trên toàn cầu. Khóa đào tạo và cấp chứng chỉ về Java J2EE và SOA của Edureka được thiết kế cho sinh viên và các chuyên gia muốn trở thành Nhà phát triển Java. Khóa học được thiết kế để cung cấp cho bạn khởi đầu về lập trình Java và đào tạo bạn về cả khái niệm Java cốt lõi và nâng cao cùng với các khung Java khác nhau như Hibernate & Spring.

Có một câu hỏi cho chúng tôi? Vui lòng đề cập đến nó trong phần nhận xét của blog “Sơ đồ cây trong Java” này và chúng tôi sẽ liên hệ lại với bạn trong thời gian sớm nhất.