cuốn sách gpt4 ai đã làm

java - Bộ sưu tập - Iterator.remove() so với Collection.remove()

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-03 03:27:38 29 4
mua khóa gpt4 Nike

Theo mặt trời,

"Iterator.remove là cách an toàn duy nhất để sửa đổi bộ sưu tập trong quá trình lặp; hành vi này không được xác định nếu bộ sưu tập cơ bản được sửa đổi theo bất kỳ cách nào khác trong khi quá trình lặp đang diễn ra."

Tôi có hai câu hỏi:

  1. Điều gì làm cho thao tác "Iterator.remove()" này ổn định hơn các thao tác khác?
  2. Nếu phương thức "Collection.remove()" vô dụng trong hầu hết các trường hợp sử dụng thì tại sao họ lại cung cấp nó?

câu trả lời hay nhất

Đầu tiên,Bộ sưu tập.remove() Rất hữu ích. Nó phù hợp cho nhiều trường hợp sử dụng và có thể tốt hơn Iterator.remove() Áp dụng nhiều hơn.

Tuy nhiên, cách sau giải quyết được một vấn đề cụ thể: nó cho phép bạnSửa đổi bộ sưu tập trong khi lặp lại nó.

Iterator.remove()Vấn đề được giải quyết được hiển thị dưới đây:

    List l = new ArrayList(Arrays.asList(1, 2, 3, 4));
cho (int el : l) {
nếu (el < 3) {
l.remove(el);
}
}

Mã này không hợp lệ vì l.remove() hiện hữu tôi được gọi trong quá trình lặp.

Cách viết đúng như sau:

    Iterator it = l.iterator();
while (it.hasNext()) {
int el = it.next();
nếu (el < 3) {
it.remove();
}
}

Về java - bộ sưu tập - Iterator.remove() so với Collection.remove(), chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/14200489/

29 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress