Java Tut 39: Java Iterator (trình lặp)

0
0
(0)

Trình lặp lại Java

An Iteratorlà một đối tượng có thể được sử dụng để lặp qua các bộ sưu tập, như ArrayList và HashSet . Nó được gọi là “trình lặp” vì “lặp” là thuật ngữ kỹ thuật để chỉ vòng lặp.

Để sử dụng một Iterator, bạn phải nhập nó từ java.utilgói.


Bắt một Trình lặp lại

Các iterator()phương pháp có thể được sử dụng để có được một Iteratorcho bất kỳ bộ sưu tập:

Thí dụ

// Import the ArrayList class and the Iterator class
import java.util.ArrayList;
import java.util.Iterator;

public class Main {
  public static void main(String[] args) {

    // Make a collection
    ArrayList<String> cars = new ArrayList<String>();
    cars.add("Volvo");
    cars.add("BMW");
    cars.add("Ford");
    cars.add("Mazda");

    // Get the iterator
    Iterator<String> it = cars.iterator();

    // Print the first item
    System.out.println(it.next());
  }
}

Hãy tự mình thử »


Vòng qua một bộ sưu tập

Để lặp qua một bộ sưu tập, hãy sử dụng các phương thức hasNext()và next()của Iterator:

Thí dụ

while(it.hasNext()) {
  System.out.println(it.next());
}

Hãy tự mình thử »


Xóa các mục khỏi bộ sưu tập

Các trình lặp được thiết kế để dễ dàng thay đổi các tập hợp mà chúng lặp qua. Các remove()phương pháp có thể xoá các mục từ một bộ sưu tập trong khi vòng lặp.

Thí dụ

Sử dụng một trình lặp để xóa các số nhỏ hơn 10 khỏi một tập hợp:

import java.util.ArrayList;
import java.util.Iterator;

public class Main {
  public static void main(String[] args) {
    ArrayList<Integer> numbers = new ArrayList<Integer>();
    numbers.add(12);
    numbers.add(8);
    numbers.add(2);
    numbers.add(23);
    Iterator<Integer> it = numbers.iterator();
    while(it.hasNext()) {
      Integer i = it.next();
      if(i < 10) {
        it.remove();
      }
    }
    System.out.println(numbers);
  }
}

Hãy tự mình thử »

Lưu ý: Việc cố gắng xóa các mục bằng vòng lặp for hoặc vòng lặp for-each sẽ không hoạt động chính xác vì bộ sưu tập đang thay đổi kích thước cùng lúc mã đang cố gắng lặp lại.

How useful was this post?

Click on a star to rate it!

Average rating 0 / 5. Vote count: 0

No votes so far! Be the first to rate this post.

Leave A Reply

Your email address will not be published.