Nội dung
FaCode Ngôn ngữ Java Sử dụng iterator trong Java
Iterator interface
Iterator trong Java là một interface được sử dụng để thay thế Enumerations trong Java Collection Framework. Bạn có thể sử dụng iterator để:
- Duyệt các phần tử từ đầu đến cuối của một collection.
- Iterator cho phép xóa phần tử khi lặp một collection.
Các phương thức của Iterator trong Java
Có ba phương thức trong Iterator như sau:
Phương thức | Mô tả |
public boolean hasNext() | Nó trả về true nếu iterator còn phần tử kế tiếp phần tử đang duyệt. |
public object next() | Nó trả về phần tử hiện tại và di chuyển con trỏ trỏ tới phần tử tiếp theo. |
public void remove() | Nó loại bỏ phần tử cuối được trả về bởi Iterator. Nó hiếm khi được sử dụng. |
ListIterator interface
Đối với các collections mà implement List, bạn cũng có thể sử dụng iterator bằng cách gọi ListIterator.
Các phương thức của ListIterator trong Java
Phương thức | Mô tả |
public void add(Object obj) | Chèn obj vào phía trước phần tử sẽ được trả về bởi lệnh gọi tiếp theo tới next(). |
public boolean hasNext() | Trả về true nếu có phần tử tiếp theo. Nếu không, trả về false. |
public boolean hasPrevious() | Trả về true nếu có phần tử trước. Nếu không, trả về false. |
public Object next() | Trả về phần tử tiếp theo. Một NoSuchEuityException được ném nếu không có phần tử tiếp theo. |
public int nextIndex() | Trả về chỉ mục của phần tử tiếp theo. Nếu không có phần tử tiếp theo, trả về kích thước của danh sách. |
public Object previous() | Trả về phần tử trước. Một NoSuchEuityException được ném nếu không có phần tử trước đó. |
public int previousIndex() | Trả về chỉ mục của phần tử trước. Nếu không có phần tử trước, trả về -1. |
public void remove() | Loại bỏ các phần tử hiện tại khỏi danh sách. Một IllegalStateException được ném nếu remove() được gọi trước next() hoặc trước previous(). |
public void set(Object obj) | Chỉ định obj cho phần tử hiện tại. Đây là phần tử được trả về lần cuối bởi một lệnh gọi tới next() hoặc previous(). |
Sử dụng Iterator trong Java
Dưới đây là một ví dụ minh họa sử dụng Iterator và List Iterator trong Java. Nó sử dụng một đối tượng ArrayList.
ListIterator chỉ khả dụng cho những collections implement List.
Kết quả:
Code:
package vn.facode;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.ListIterator;
public class IteratorDemo {
public static void main(String args[]) {
ArrayList listLanguages = new ArrayList();
// them phan tu vao array list
listLanguages.add("Java");
listLanguages.add("Python");
listLanguages.add("PHP");
listLanguages.add(".NET");
listLanguages.add("C");
listLanguages.add("C++");
// su dung iterator de hien thi noi dung cua listLanguages
System.out.println("Danh sach ngon ngu lap trinh: ");
Iterator itr = listLanguages.iterator();
while (itr.hasNext()) {
Object element = itr.next();
System.out.println(element);
}
System.out.println();
// sua cac phan tu duoc lap
ListIterator litr = listLanguages.listIterator();
while (litr.hasNext()) {
Object element = litr.next();
litr.set(element + " (PASS)");
}
System.out.println("Noi dung da duoc sua cua listLanguages: ");
itr = listLanguages.iterator();
while (itr.hasNext()) {
Object element = itr.next();
System.out.println(element);
}
System.out.println();
// hien thi cac phan tu theo thu tu nguoc lai
System.out.println("Noi dung da duoc sua cua listLanguages "
+ "theo thu tu nguoc lai: ");
while (litr.hasPrevious()) {
Object element = litr.previous();
System.out.println(element);
}
System.out.println();
// xoa phan tu C (PASS)
litr = listLanguages.listIterator();
while (litr.hasNext()) {
Object element = litr.next();
if ("C (PASS)".equals(element.toString())) {
litr.remove();
}
}
System.out.println("Noi dung da duoc sua cua listLanguages: ");
itr = listLanguages.iterator();
while (itr.hasNext()) {
Object element = itr.next();
System.out.println(element);
}
System.out.println();
}
}
_________________________________________
_____________________
7 Java frameworks phổ biến nhất hiện nay
________
FaCode là một seri học tập lập trình, lần này là FaCode ngôn ngữ Java, bằng mọi nỗ lực FaCode sẽ hoàn thành các mục tiêu đề ra trong FaCode Ngôn ngữ Java. Hãy đồng hành cùng FaCode Ngôn ngữ Java và theo dõi chúng tôi nhé. FaCode Ngôn ngữ Java rất mong nhận được lời góp ý từ phía cộng đồng. Share4Happy với phương châm chia sẻ để hạnh phúc.