Sự khác nhau giữa Iterator và ListIterator trong Java

Khi sử dụng Java Collections ta thường hay sử dụng Iterator để duyệt danh sách giữa các phần tử, tuy nhiên ta cũng có một cách khác đó là sủ dụng ListIterator.

Sự khác nhau cơ bản giữa Iterator và ListIterator trong Java là ListIterator có thể duyệt lùi về phía trước, còn Iterator thì không!

Code:

import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
 
public class ListAndListIterator {
 
   public static void main(String[] args) {
 
       // Tạo một đối tượng List (Chỉ chứa các String)
       List list = new ArrayList();
       list.add("Một");
       list.add("Hai");
       list.add("Ba");
       list.add("Bốn");
 
       // Lấy ra đối tượng ListIterator để duyệt danh sách.
       ListIterator listIterator = list.listIterator();
 
       // Hiện tại con trỏ đang đứng tại ví trí đầu danh sách.
       // Đứng tại chỉ số 0.
       // Lấy ra phần tử đầu tiên trong danh sách, con trỏ tiến một bước.
       String first = listIterator.next();
       System.out.println("first:" + first);// -->"Một"
 
       // Hiện tại con trỏ đang đứng tại vị trí chỉ số 1
       // Lấy ra phần tử tiếp theo.
       String second = listIterator.next();
       System.out.println("second:" + second);// -->"Hai"
 
       // Kiểm tra xem con trỏ có thể nhẩy lùi 1 vị trí không
       if (listIterator.hasPrevious()) {
           // Lùi con trỏ 1 trị trí.
           String value = listIterator.previous();
           System.out.println("value:" + value);// -->"Hai"
       }
 
       System.out.println(" ----- ");
 
       while (listIterator.hasNext()) {
           String value = listIterator.next();
           System.out.println("value:" + value);
       }
   }
 
}
Kết quả:
first:Một
second:Hai
value:Hai
 ----- 
value:Hai
value:Ba
value:Bốn

Ngoài ra ListIterator còn implements Iterator nên chứa thêm 1 số chức năng như thêm mới 1 phần tử, thay thế phần tử, lấy index của phần tử trước/sau nó...

Nhận xét

Bài đăng phổ biến từ blog này

Base64 image – Lợi hay hại?

Hàm "tap" trong Laravel Collection