Trong bài này, chúng ta sẽ tìm hiểu về List interface trong Java và các hàm của nó.
Trong Java, List interface là một collection có trật tự cho phép chúng ta lưu trữ và truy cập tới các phần tử một cách tuần tự. Nó được mở rộng từ Collection interface.
Các class triển khai List interface
Vì List là một interface nên chúng ta không thể tạo các đối tượng từ nó.
Để sử dụng các chức năng của List interface, chúng ta có thể sử dụng các class sau:
Các class này được định nghĩa trong Collection framework và chúng triển khai List interface.
Nội dung chính
1. Làm thế nào để sử dụng List?
Trong Java, chúng ta phải import gói java.util.List để sử dụng List.
// ArrayList implementation of List
List<String> list1 = new ArrayList<>();
// LinkedList implementation of List
List<String> list2 = new LinkedList<>();
Ở đây, chúng ta đã tạo các đối tượng list1 và list2 của các class ArrayList và LinkedList. Những đối tượng này có thể sử dụng các hàm của List interface.
2. Các hàm của list
List interface bao gồm tất cả các hàm của Collection interface. Bởi vì Collection là một lớp cha interface của List.
Một số hàm thường được sử dụng của Collection interface và cũng có sẵn trong List interface là:
- add() – thêm một phần tử vào list
- addAll() – thêm tất cả các phần tử của một list này vào list khác
- get() – giúp truy cập ngẫu nhiên các phần tử từ list
- iterator() – trả về đối tượng iterator có thể được sử dụng để truy cập tuần tự các phần tử của list
- set() – thay đổi các phần tử của list
- remove() – xóa một phần tử khỏi list
- removeAll() – loại bỏ tất cả các phần tử khỏi list
- clear()- loại bỏ tất cả các phần tử khỏi list (hàm này hiệu quả hơn hàm removeAll())
- size() – trả về độ dài của list
- toArray() – chuyển đổi một list thành một mảng
- contains()- trả về true nếu một list chứa phần tử được chỉ định
3. Triển khai list interface
3.1 Triển khai class ArrayList
/**
* Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
*
* @author cafedevn
* Contact: cafedevn@gmail.com
* Fanpage: https://www.facebook.com/cafedevn
* Instagram: https://instagram.com/cafedevn
* Twitter: https://twitter.com/CafedeVn
* Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
*/
import java.util.List;
import java.util.ArrayList;
class Main {
public static void main(String[] args) {
// Creating list using the ArrayList class
List<Integer> numbers = new ArrayList<>();
// Add elements to the list
numbers.add(1);
numbers.add(2);
numbers.add(3);
System.out.println("List: " + numbers);
// Access element from the list
int number = numbers.get(2);
System.out.println("Accessed Element: " + number);
// Remove element from the list
int removedNumber = numbers.remove(1);
System.out.println("Removed Element: " + removedNumber);
}
}
Kết quả
List: [1, 2, 3]
Accessed Element: 3
Removed Element: 2
Để tìm hiểu thêm về ArrayList, hãy truy cập ArrayList trong Java.
3.2 Triển khai class LinkedList
/**
* Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
*
* @author cafedevn
* Contact: cafedevn@gmail.com
* Fanpage: https://www.facebook.com/cafedevn
* Instagram: https://instagram.com/cafedevn
* Twitter: https://twitter.com/CafedeVn
* Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
*/
import java.util.List;
import java.util.LinkedList;
class Main {
public static void main(String[] args) {
// Creating list using the LinkedList class
List<Integer> numbers = new LinkedList<>();
// Add elements to the list
numbers.add(1);
numbers.add(2);
numbers.add(3);
System.out.println("List: " + numbers);
// Access element from the list
int number = numbers.get(2);
System.out.println("Accessed Element: " + number);
// Using the indexOf() method
int index = numbers.indexOf(2);
System.out.println("Position of 3 is " + index);
// Remove element from the list
int removedNumber = numbers.remove(1);
System.out.println("Removed Element: " + removedNumber);
}
}
Kết quả
List: [1, 2, 3]
Accessed Element: 3
Position of 3 is 1
Removed Element: 2
Để tìm hiểu thêm về LinkedList, hãy truy cập LinkedList trong Java.
4. List và Set trong Java
Cả List interface và Set interface đều thừa hưởng từ Collection interface. Tuy nhiên, có một vài sự khác biệt giữa chúng.
List có thể bao gồm các phần tử trùng lặp. Tuy nhiên, set không thể có các phần tử trùng lặp.
Các phần tử trong list được lưu trữ theo thứ tự. Tuy nhiên, các phần tử trong set được lưu trữ trong các nhóm như tập hợp trong toán học.
Bây giờ chúng ta biết List là gì, chúng ta sẽ thấy cách triển khai của nó trong các class ArrayList và LinkedList một cách chi tiết trong các bài tiếp theo.