Xóa tất cả các phần tử khỏi Danh sách sau một chỉ mục cụ thể


82

Có cách nào thuận tiện trong List / ArrayList mà chúng ta có thể xóa tất cả các phần tử của Danh sách sau một chỉ mục cụ thể không. Thay vì lặp lại thủ công qua nó để loại bỏ.

Để giải thích rõ hơn, nếu tôi có một danh sách gồm 10 phần tử, tôi muốn đề cập đến chỉ mục 3 và sau đó tất cả các phần tử sau khi chỉ mục 3 bị xóa và danh sách của tôi bây giờ sẽ chỉ bao gồm 4 phần tử bắt đầu (tính từ 0)

Câu trả lời:


145
list.subList(4, list.size()).clear();

Các hoạt động trong danh sách con được phản ánh trong danh sách gốc , vì vậy, điều này sẽ xóa mọi thứ từ chỉ mục 4 bao gồm đến list.size()độc quyền, hay còn gọi là mọi thứ sau chỉ mục 3. Loại bỏ phạm vi được sử dụng cụ thể làm ví dụ trong tài liệu:

Phương pháp này loại bỏ sự cần thiết của các phép toán phạm vi rõ ràng (kiểu thường tồn tại đối với mảng). Bất kỳ hoạt động nào mong đợi một danh sách có thể được sử dụng như một hoạt động phạm vi bằng cách chuyển một dạng xem Danh sách con thay vì toàn bộ danh sách. Ví dụ: thành ngữ sau đây loại bỏ một loạt các phần tử khỏi danh sách:

     list.subList(from, to).clear();

13

Sử dụng danh sách con () và clear (),

public class Count
{
    public static void main(String[] args)
    {
        ArrayList<String> arrayList = new ArrayList<String>();
        arrayList.add("1");
        arrayList.add("2");
        arrayList.add("3");
        arrayList.add("4");
        arrayList.add("5");
        arrayList.subList(2, arrayList.size()).clear();
        System.out.println(arrayList.size());
    }
}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.