TỔNG QUAN
CẤU TRÚC ĐIỀU KHIỂN
VÒNG LẶP
CHUỖI VÀ MẢNG
COLLECTIONS
THƯ VIỆN QUAN TRỌNG
HƯỚNG ĐỐI TƯỢNG
XỬ LÝ LUỒNG
EXCEPTION
LÀM VIỆC VỚI FILE
THAM KHẢO
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

SortedSet Interface trong Java

Trong bài này, tôi sẽ hướng dẫn đến các bạn một dạng riêng của Set Interface - đó là SortedSet Interface trong Java. Nội dung của bài này sẽ mô tả đặc điểm, các phương thức thường dùng của Collection này. Với mỗi phương thức được liệt kê, tôi sẽ đưa ra ví dụ đơn giản để cho các bạn nắm bắt được.

test php

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

1. Đặc điểm

SortedSet Interface là 1 dạng riêng của Set Interface nên nó có những đặc điểm của Set đó là các phần tử trong SortedSet là duy nhất (nghĩa là giá trị của các phần tử này không được giống nhau) và SortedSet được sử dụng khi chúng ta muốn lưu trữ một danh sách các phần tử không có sự trùng lặp. Ngoài ra, SortedSet có điểm vượt trội hơn so với Set là thứ tự các phần tử trong Set được sắp xếp tăng dần hoặc giảm dần (mặc định là tăng dần).

2. Các phương thức phổ biến

SortedSet là 1 dạng riêng của Set nên những phương thức của nó sẽ tương tự như những phương thức có trong Set. Trong bài này, tôi sẽ không trình bày lại những phương thức đó mà tôi sẽ giới thiệu những phương thức riêng của SortedSet để cho các bạn tìm hiểu. 

Tạo mới và hiển thị các phần tử của 1 SortedSet

Để khai báo một SortedSet, chúng ta cần phải dùng đến Class để triển khai nó, trong phần này chúng ta sẽ sử dụng ClassTreeSet bởi vì các phần tử trong TreeSet được sắp xếp theo chiều tăng dần.

Bài viết này được đăng tại [free tuts .net]

Ví dụ
public static void main(String[] args) {
	// khai báo SortedSet Interface tên sortedSetString
	// và sử dụng Class là TreeSet để triển khai
	// TreeSet là 1 Class Collection
	// các phần tử trong sortedSetString cũng có kiểu là String
	SortedSet<String> sortedSetString = new TreeSet<String>();
		
	// thêm các phần tử vào trong sortedSetString
	sortedSetString.add("Monday");
	sortedSetString.add("Tuesday");
	sortedSetString.add("Wednesday");
	sortedSetString.add("Thursday");
	sortedSetString.add("Saturday");
	sortedSetString.add("Sunday");
		
	// hiển thị sortedSetString ở dạng mảng
	// các phần tử được sắp xếp tăng dần theo chữ cái đầu tiên
	System.out.println("Các phần tử có trong sortedSetString: ");
	System.out.println(sortedSetString);
}

Kết quả sau khi biên dịch chương trình:

ketqua taomoiSortedSet PNG

Lưu ý: Để khai báo SortedSet chúng ta cần phải import gói thư viện java.util.SortedSet. Cú pháp import như sau:

Cú pháp
// Khai báo SortedSet
// thì import gói thư viện java.util.SortedSet
import java.util.SortedSet;
public class TênClass {
	// ...
}

Trích xuất một phần trong SortedSet

Đối với SortedSet, Java cung cấp cho chúng ta các phương thức để trích xuất các phần tử trong SortedSet đó là subset(), headset()tailset(). Sau đây chúng ta sẽ cùng nhau tìm hiểu về 3 phương thức này.

Phương thức subSet().

Cú pháp
SortedSet subSet(E fromElement, E toElement)

Công dụng: Phương thức subSet() sẽ trả về một SortedSet được trích xuất từ phần tử fromElement đến phần tử đứng trước phần tử toElement của một SortedSet cho trước.

Ví dụ
public static void main(String[] args) {
	List<Integer> listInteger = new ArrayList<>();
		
	// thêm các phần tử vào trong listInteger
	listInteger.add(2);
	listInteger.add(1);
	listInteger.add(4);
	listInteger.add(3);
	listInteger.add(6);
	listInteger.add(5);
	listInteger.add(8);
	listInteger.add(7);
	listInteger.add(0);
	listInteger.add(9);
		
	// khai báo 1 SortedSet Interface có kiểu là Integer
	// có các phần tử là các phần tử của listInteger
	SortedSet<Integer> sortedsetInteger = new TreeSet<>(listInteger);
		
	System.out.println("Các phần tử có trong sortedsetInteger: ");
	System.out.println(sortedsetInteger);
		
	// khai báo 1 SortedSet có tên là subset
	// có các phần tử được trích xuất 
	// trong đoạn [3,7) của sortedsetInteger
	SortedSet<Integer> subset = sortedsetInteger.subSet(3, 7);
	System.out.println("Các phần tử có trong subset: ");
	System.out.println(subset);

	// nếu phần tử đầu và phần tử cuối bằng nhau
	// thì kết quả của phương thức subSet() 
	// sẽ trả về subset không có phần tử nào
	subset = sortedsetInteger.subSet(3, 3);
	System.out.println("Các phần tử có trong subset: ");
	System.out.println(subset);
}

Kết quả sau khi biên dịch chương trình:

ketqua subsetsortedset PNG

Phương thức headSet().

Cú pháp
SortedSet headSet(E toElement)

Công dụng: Phương thức headSet() sẽ trả về một SortedSet được trích xuất từ phần tử đầu tiên đến phần tử đứng trước phần tử toElement của một SortedSet cho trước.

Ví dụ
public static void main(String[] args) {
	List<Integer> listInteger = new ArrayList<>();
		
	// thêm các phần tử vào trong listInteger
	listInteger.add(2);
	listInteger.add(1);
	listInteger.add(4);
	listInteger.add(3);
	listInteger.add(6);
	listInteger.add(5);
	listInteger.add(8);
	listInteger.add(7);
	listInteger.add(0);
	listInteger.add(9);
		
	// khai báo 1 SortedSet Interface có kiểu là Integer
	// có các phần tử là các phần tử của listInteger
	SortedSet<Integer> sortedsetInteger = new TreeSet<>(listInteger);
		
	System.out.println("Các phần tử có trong sortedsetInteger: ");
	System.out.println(sortedsetInteger);
		
	// khai báo 1 SortedSet có tên là headset
	// có các phần tử được trích xuất 
	// từ phần tử đầu tiên đến 
	// phần tử đứng trước phần tử 5 trong sortedsetInteger
	SortedSet<Integer> headset = sortedsetInteger.headSet(5);
	System.out.println("Các phần tử có trong headset: ");
	System.out.println(headset);
}

Kết quả sau khi biên dịch chương trình:

ketqua headsetsortedset PNG

Phương thức tailSet().

Cú pháp
SortedSet tailSet(E fromElement)

Công dụng: Phương thức tailSet() sẽ trả về một SortedSet được trích xuất từ phần tử lớn hơn hoặc bằng phần tử fromElement đến phần tử cuối cùng của một SortedSet cho trước.

Ví dụ
public static void main(String[] args) {
	List<Integer> listInteger = new ArrayList<>();
		
	// thêm các phần tử vào trong listInteger
	listInteger.add(2);
	listInteger.add(1);
	listInteger.add(4);
	listInteger.add(3);
	listInteger.add(6);
	listInteger.add(5);
	listInteger.add(8);
	listInteger.add(7);
	listInteger.add(0);
	listInteger.add(9);
		
	// khai báo 1 SortedSet Interface có kiểu là Integer
	// có các phần tử là các phần tử của listInteger
	SortedSet<Integer> sortedsetInteger = new TreeSet<>(listInteger);
		
	System.out.println("Các phần tử có trong sortedsetInteger: ");
	System.out.println(sortedsetInteger);
		
	// khai báo 1 SortedSet có tên là tailset
	// có các phần tử được trích xuất 
	// từ phần tử lớn hơn hoặc bằng 
	// phần tử fromElement đến phần tử cuối cùng của sortedsetInteger
	SortedSet<Integer> tailset = sortedsetInteger.tailSet(5);
	System.out.println("Các phần tử có trong tailset: ");
	System.out.println(tailset);
}

Kết quả sau khi biên dịch chương trình:

ketqua tailsetsortedset PNG

Tìm phần tử nhỏ nhất và lớn nhất trong SortedSet

Để tìm phần tử nhỏ nhất và lớn nhất trong SortedSet, Java cung cấp cho chúng ta 2 phương thức đó là first() (tìm phần tử nhỏ nhất) và last() (tìm phần tử lớn nhất).

Ví dụ
public static void main(String[] args) {
	List<Integer> listInteger = new ArrayList<>();
		
	// thêm các phần tử vào trong listInteger
	listInteger.add(2);
	listInteger.add(1);
	listInteger.add(4);
	listInteger.add(3);
	listInteger.add(6);
	listInteger.add(5);
	listInteger.add(8);
	listInteger.add(7);
	listInteger.add(0);
	listInteger.add(9);
		
	SortedSet<Integer> sortedsetInteger = new TreeSet<>(listInteger);
		
	System.out.println("Các phần tử có trong sortedsetInteger: ");
	System.out.println(sortedsetInteger);
		
	// tìm phần tử lớn nhất và nhỏ nhất trong sortedsetInteger
	int phanTuLonNhat = sortedsetInteger.last();
	int phanTuNhoNhat = sortedsetInteger.first();
	System.out.println("Phần tử lớn nhất và nhỏ nhất trong"
		+ " sortedsetInteger là " + phanTuLonNhat + " và " + phanTuNhoNhat);
}

Kết quả sau khi biên dịch chương trình:

ketqua ptlonnhonhatSet PNG

3. Lời kết

Trong bài này, tôi đã giới thiệu cho các bạn đặc điểm, các phương thức thường dùng đối với SortedSet Interface. Sang bài sau tôi sẽ giới thiệu đến các bạn một loại Interface Collection tiếp theo, đó là Map trong Java. Các bạn theo dõi nhé! 

Cùng chuyên mục:

Sử dụng JUnit để tạo unit test trong Spring Boot

Sử dụng JUnit để tạo unit test trong Spring Boot

Cách triển khai Spring Boot trên Tomcat Server

Cách triển khai Spring Boot trên Tomcat Server

Cách test RESTful API trong Spring Boot

Cách test RESTful API trong Spring Boot

Cách dùng Spring Security trong Spring Boot để xác thực và phân quyền

Cách dùng Spring Security trong Spring Boot để xác thực và phân quyền

Duyệt cây nhị phân bằng phương pháp inOder trong Java

Duyệt cây nhị phân bằng phương pháp inOder trong Java

Xóa node của cây nhị phân tìm kiếm trong Java

Xóa node của cây nhị phân tìm kiếm trong Java

Bảo mật Spring Boot RESTful Service sử dụng Basic Authentication trong Java

Bảo mật Spring Boot RESTful Service sử dụng Basic Authentication trong Java

Xác định đường biên(boundary traversal) của cây nhị phân trong Java

Xác định đường biên(boundary traversal) của cây nhị phân trong Java

Xác định các lá của binary tree sử dụng preoder trong Java

Xác định các lá của binary tree sử dụng preoder trong Java

Tìm kiếm node của cây nhị phân tìm kiếm trong Java

Tìm kiếm node của cây nhị phân tìm kiếm trong Java

Cách chuyển HTTP sang HTTPS trong Spring Boot

Cách chuyển HTTP sang HTTPS trong Spring Boot

Triển khai cây nhị phân từ danh sách liên kết trong Java

Triển khai cây nhị phân từ danh sách liên kết trong Java

Cách tạo ra Mirror Tree từ Binary Tree bằng ngôn ngữ Java

Cách tạo ra Mirror Tree từ Binary Tree bằng ngôn ngữ Java

Sử dụng @bean trong ứng dụng Spring Boot

Sử dụng @bean trong ứng dụng Spring Boot

Spring Data JPA trong Spring Boot là gì? Spring Data JPA có gì hay?

Spring Data JPA trong Spring Boot là gì? Spring Data JPA có gì hay?

Giới thiệu về Spring Boot Actuator trong ứng dụng Spring Boot

Giới thiệu về Spring Boot Actuator trong ứng dụng Spring Boot

Tính tổng số cây nhị phân tìm kiếm có thể được tạo ra bởi N nodes trong Java

Tính tổng số cây nhị phân tìm kiếm có thể được tạo ra bởi N nodes trong Java

Tìm phần tử nhỏ nhất của cây nhị phân trong Java

Tìm phần tử nhỏ nhất của cây nhị phân trong Java

Sử dụng nhiều ViewResolver trong Spring Boot Java

Sử dụng nhiều ViewResolver trong Spring Boot Java

Tìm khoảng cách lớn nhất giữa các node của cây nhị phân trong Java

Tìm khoảng cách lớn nhất giữa các node của cây nhị phân trong Java

Top