在Java,对象是使用对象动态存储的。现在,为了在这些对象遍历使用for-each循环,迭代器和比较器来完成。这里将讨论迭代器。该接口允许一一访问容器中的元素,这间接表示仅在转发方向上检索集合的元素。
三种方法的接口折衷:
- 下一个()
- 有下一个()
- 去掉()
(一) 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