📜  Java集合中next()和hasNext()方法的区别

📅  最后修改于: 2021-09-11 04:00:06             🧑  作者: Mango

在Java,对象是使用对象动态存储的。现在,为了在这些对象遍历使用for-each循环,迭代器和比较器来完成。这里将讨论迭代器。该接口允许一一访问容器中的元素,这间接表示仅在转发方向上检索集合的元素。

三种方法的接口折衷:

  1. 下一个()
  2. 有下一个()
  3. 去掉()

(一) hasNext() 方法

hasNext() 方法用于检查 List 中是否还有任何元素。这个方法是一个布尔类型的方法它只返回真和假,因为它只是用于检查目的。如果遍历期间用于检查指向元素是否具有下一个元素的集合对象,则 Iterator 和 List Iterator 的 hasNext() 方法返回 true。如果不是,它只会返回 false。所以,

Return Value:
        True  - if iteration has more elements 
        False - if iteration has no more elements

返回类型:布尔值

例子:

Java
// Java program to demonstrate
// the use of hasNext() method
  
// Importing java input output classes
// Importing all classesfrom
// java.util package
import java.io.*;
import java.util.*;
  
// Class
class GFG {
  
    // Main driver method
    public static void main(String[] args)
    {
        // Creating an ArrayList
        // Declaring the ArrayList
        ArrayList list = new ArrayList();
  
        // Adding (appending) new elements at
        // the end of the List
        // Custom inputs
        list.add("Geeks");
        list.add("for Geeks");
  
        // Declaring the Iterator
        Iterator iterator = list.iterator();
  
        // Printing hasNext() values
        // Prints true because iterator has two more values
        System.out.println(iterator.hasNext());
  
        // Go to next value using next() method
        iterator.next();
  
        // Prints true because iterator has one more values
        System.out.println(iterator.hasNext());
  
        // Go to next value using next() method
        iterator.next();
  
        // Prints false because iterator has no more values
        System.out.println(iterator.hasNext());
    }
}


Java
// Java program to demonstrate
// the use of next() method
  
// Importing java input output classes
import java.io.*;
// Importing all classes from
// java.util package
import java.util.*;
  
// Class
class GFG {
  
    // Main driver method
    public static void main(String[] args)
    {
        // Creating an ArrayList
        // (Declaring ArrayList of String type)
        ArrayList list = new ArrayList();
  
        // Adding elements to above List at
        // the end of the list
        // Custom inputs
        list.add("Element1");
        list.add("Element2");
        list.add("Element3");
  
        // Declaring the Iterator
        Iterator iterator = list.iterator();
  
        // Printing values showcasing next() method which
        // shows traversal over elements
        // only in forward direction
  
        // Prints first element traversed
        System.out.println(iterator.next());
  
        // Prints the succeeding element
        System.out.println(iterator.next());
  
        // Prints another eleemnt succeeding
        // to previous element
        System.out.println(iterator.next());
    }
}


输出:
true
true
false

(B) next()方法

如果在 where hasNext() 返回 false 之后有一个元素要执行某些执行,则此方法用于显示应该在此方法的帮助下继续执行的元素。 Iterator 和 List Iterator 的next()方法返回集合的下一个元素。如果需要删除这个元素,则使用 remove() 方法。

返回类型:与集合相同 例如ArrayList,链表

返回值:迭代中的下一个元素。

异常:抛出 NoSuchElementException 如果迭代没有更多元素。

例子:

Java

// Java program to demonstrate
// the use of next() method
  
// Importing java input output classes
import java.io.*;
// Importing all classes from
// java.util package
import java.util.*;
  
// Class
class GFG {
  
    // Main driver method
    public static void main(String[] args)
    {
        // Creating an ArrayList
        // (Declaring ArrayList of String type)
        ArrayList list = new ArrayList();
  
        // Adding elements to above List at
        // the end of the list
        // Custom inputs
        list.add("Element1");
        list.add("Element2");
        list.add("Element3");
  
        // Declaring the Iterator
        Iterator iterator = list.iterator();
  
        // Printing values showcasing next() method which
        // shows traversal over elements
        // only in forward direction
  
        // Prints first element traversed
        System.out.println(iterator.next());
  
        // Prints the succeeding element
        System.out.println(iterator.next());
  
        // Prints another eleemnt succeeding
        // to previous element
        System.out.println(iterator.next());
    }
}

输出:

Element1
Element2
Element3