Khóa học java

List trong Java

0 phút đọc

List trong java là một interface trong java. Nó chứa các phương thức để chèn và xóa các phần tử dựa trên chỉ số index.

Sử dụng List trong Java

Cấu trúc List là dạng tập hợp các phần tử được sắp theo thứ tự (còn được gọi là dãy tuần tự) và trong đó cho phép lặp (hai phần tử giống nhau). 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 tính năng của List interface, chúng ta có thể sử dụng các class sau:

  • ArrayList
  • LinkedList
  • Vector
  • Stack
Các class triển khai List interface

Khai báo List trong java

Trong Java, chúng ta phải import package là java.util.List để sử dụng được List.

java Copy
// ArrayList triển khai List
List<String> list1 = new ArrayList<>();

// LinkedList triển khai List
List<String> list2 = new LinkedList<>();

Ở đây, chúng ta đã tạo các đối tượng list1list2 của class ArrayList và `LinkedList. Các đối tượng này có thể sử dụng các tính năng của List interface.

Các phương thức của List

Ngoài những hàm mà nó được kế thừa từ Collection, List còn bổ sung thêm những hàm như:

Method Mô tả
Object get(int index) Cho lại phần tử được xác định bởi index.
Object set(int index, Object elem) Thay thế phần tử được xác định bởi index bằng elem
void add(int index, Object elem) Chèn elem vào sau phần tử được xác định bởi index.
Object remove(int index) Bỏ đi phần tử được xác định bởi index
boolean addAll(int index, Collection c) Chèn các phần tử của tập hợp c vào vị trí được xác định bởi index
int indexOf(Object elem) Cho biết vị trí lần xuất hiện đầu tiên của phần tử trong danh sách
int lastIndexOf(Object elem) Cho biết vị trí lần xuất hiện cuối cùng của elem trong danh sách.
List subList(int fromIndex, int toIndex) Lấy ra một danh sách con từ vị trí fromIndex đến toIndex
ListIterator listIterator() Cho lại các phần tử liên tiếp bắt đầu từ phần tử đầu tiên.
ListIterator listIterator(int index) Cho lại các phần tử liên tiếp bắt đầu từ phần tử được xác định bởi. Trong đó ListIterator là interface mở rộng giao diện Iterator đã có trong java.lang.

Ví dụ về List trong java

Hãy xem ví dụ đơn giản về List trong java sau

java Copy
import java.util.ArrayList;
import java.util.List;

public class ListExample {
    public static void main(String args[]) {
        List<String> list = new ArrayList<String>();
        list.add("Java");
        list.add("C++");
        list.add("PHP");
        list.add(1, "Python");
        System.out.println("Phan tu co index = 2 la: " + list.get(2));
        // show list
        for (String s : list) {
            System.out.println(s);
        }
    }
}

Kết quả

Phan tu co index = 2 la: C++
Java
Python
C++
PHP

Ví dụ sử dụng Arrays.asList()

java Copy
import java.util.Arrays;
import java.util.List;

public class ListExample1 {
    public static void main(String args[]) {
        // create new array
        String[] arr = { "Java", "C++", "PHP", "Python" };
        // convert array to List
        List<String> list = Arrays.asList(arr);
        // show list
        for (String s : list) {
            System.out.println(s);
        }
    }
}

Kết quả

Java
C++
PHP
Python

List Iterator trong java

ListIterator là một interface được sử dụng để duyệt các phần tử của List trong java. Các phương thức của interface ListIterator trong java

Method Mô tả
boolean hasNext() Phương thức này trả về true nếu list interface có tồn tại phần tử kế tiếp phần tử hiện tại.
Object next() Phương thức này trả về phần tử kế tiếp trong danh sách và vị trí con trỏ tăng lên 1.
boolean hasPrevious() Phương pháp này trả về true nếu list interface có tồn tại phần tử kế sau phần tử hiện tại.
Object previous() Phương thức này trả về phần tử kế sau trong danh sách và vị trí con trỏ giảm đi 1

Hãy xem ví dụ đơn giả về việc duyệt các phần tử của List trong java bằng cách sử dụng ListIterator

java Copy
import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;

public class Thaycacac {
    public static void main(String args[]) {
        List<String> list = new ArrayList<String>();
        list.add("Java");
        list.add("C++");
        list.add("PHP");
        list.add(1, "Python");
        System.out.println("Phan tu co index = 2 la: " + list.get(2));

        ListIterator<String> itr = list.listIterator();
        System.out.println("Duyet cac phan tu tu dau den cuoi:");
        while (itr.hasNext()) {
            System.out.println("\t" + itr.next());
        }
        System.out.println("Duyet cac phan tu tu cuoi ve dau:");
        while (itr.hasPrevious()) {
            System.out.println("\t" + itr.previous());
        }
    }
}

Kết quả

Phan tu co index = 2 la: C++
Duyet cac phan tu tu dau den cuoi:
Java
Python
C++<
PHP
Duyet cac phan tu tu cuoi ve dau:
PHP
C++
Python
Java

Avatar
Được viết bởi

Admin Team

Gợi ý câu hỏi phỏng vấn

Không có dữ liệu

Không có dữ liệu

Gợi ý bài viết
Không có dữ liệu

Không có dữ liệu

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào