Rate this post

hasNext() trong Java là một phương thức của lớp Iterator, nó trả về một giá trị boolean xác định có hoặc không còn phần tử tiếp theo trong Iterator. Nếu có, nó trả về true, ngược lại nó trả về false.

Phương thức hasNext() thường được sử dụng trong vòng lặp while để kiểm tra xem có phần tử tiếp theo không trước khi thực hiện các thao tác trên nó.

Các bài viết liên quan:

Ví dụ:

List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);

Iterator<Integer> iterator = list.iterator();
while (iterator.hasNext()) {
    Integer num = iterator.next();
    System.out.println(num);
}

Trong ví dụ trên, chúng ta tạo ra một đối tượng ArrayList và thêm vài phần tử vào nó. Tiếp theo, chúng ta tạo ra một đối tượng Iterator để duyệt qua các phần tử của ArrayList. Trong vòng lặp while, chúng ta sử dụng phương thức hasNext() để kiểm tra xem có phần tử tiếp theo trong Iterator không. Nếu có, chúng ta sử dụng phương thức next() để lấy ra giá trị của phần tử tiếp theo và in ra màn hình. Vòng lặp while sẽ tiếp tục chạy cho đến khi hasNext() trả về false, tức là không còn phần tử nào trong Iterator.

Ngoài ra, còn có một số lớp khác trong Java cũng có hỗ trợ Iterator như Set, Map, v.v.

Lưu ý rằng, không nên sử dụng phương thức hasNext() trong vòng lặp for, vì nó sẽ dẫn đến việc tạo ra một đối tượng Iterator mới mỗi lần vòng lặp chạy, điều này sẽ làm chương trình chậm hơn.

Ví dụ khác về hasnext trong java

Ví dụ:

Set<String> set = new HashSet<>();
set.add("Apple");
set.add("Banana");
set.add("Orange");

Iterator<String> iterator = set.iterator();
while (iterator.hasNext()) {
    String fruit = iterator.next();
    if (fruit.equals("Banana")) {
        iterator.remove();
    }
}

Trong ví dụ trên, chúng ta tạo ra một đối tượng HashSet và thêm vài phần tử vào nó. Tiếp theo, chúng ta tạo ra một đối tượng Iterator để duyệt qua các phần tử của HashSet. Trong vòng lặp while, chúng ta sử dụng phương thức hasNext() để kiểm tra xem có phần tử tiếp theo trong Iterator không. Nếu có, chúng ta sử dụng phương thức next() để lấy ra giá trị của phần tử tiếp theo và kiểm tra xem nó có bằng “Banana” không. Nếu có, chúng ta sử dụng phương thức remove() để xóa phần tử “Banana” ra khỏi Set. Vòng lặp while sẽ tiếp tục chạy cho đến khi hasNext() trả về false, tức là không còn phần tử nào trong Iterator.

Ví dụ khác:

Map<Integer, String> map = new HashMap<>();
map.put(1, "Java");
map.put(2, "C++");
map.put(3, "Python");

Iterator<Map.Entry<Integer, String>> iterator = map.entrySet().iterator();
while (iterator.hasNext()) {
    Map.Entry<Integer, String> entry = iterator.next();
    if (entry.getValue().equals("C++")) {
        iterator.remove();
    }
}

Trong ví dụ trên, chúng ta tạo ra một đối tượng HashMap và thêm vài phần tử vào nó. Tiếp theo, chúng ta tạo ra một đối tượng Iterator để duyệt qua các Entry của HashMap. Trong vòng lặp while, chúng ta sử dụng phương thức hasNext() để kiểm tra xem có phần tử tiếp theo trong Iterator không. Nếu có, chúng ta sử dụng phương thức next() để lấy ra giá trị của Entry tiếp theo và kiểm tra xem giá trị của nó có bằng “C++” không. Nếu có, chúng ta sử dụng phương thức remove() để xóa Entry “C++” ra khỏi Map.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Contact Me on Zalo
Call now