Java集合中next()和hasNext()方法的区别
在Java中,对象是使用对象动态存储的。现在,为了遍历这些对象,要使用for-each循环、迭代器和比较器。这里将讨论一下迭代器。迭代器接口允许逐个访问容器中的元素,这间接地意味着只在前进方向上检索集合中的元素。
这个接口由三种方法组成。
1.next()
2.hasNext()
3.remove()
(A) hasNext()方法
hasNext()方法用于检查List中是否还有任何元素。这个方法是一个布尔类型的方法,它只返回真和假,因为它只是用来检查的。Iterator和List Iterator的hasNext()方法,如果在遍历过程中用于检查指向的元素是否有下一个元素的集合对象,则返回true。如果没有,则简单地返回false。所以。
返回值:
True – 如果迭代有更多的元素
False – 如果迭代中没有更多的元素
返回类型: boolean
示例:
// 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<String> list = new ArrayList<String>();
// Adding (appending) new elements at
// the end of the List
// Custom inputs
list.add("Geeks");
list.add("for Geeks");
// Declaring the Iterator
Iterator<String> 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());
}
}
输出:
true
true
false
(B) next()方法
如果有一个元素在hasNext()返回了false之后,要对其进行一些执行,那么这个方法被用来显示这个元素,在这个方法的帮助下,这个元素应该被执行下去。迭代器和列表迭代器的next()方法返回集合的下一个元素。如果需要移除这个元素,可以使用remove()方法。
返回类型: 如ArrayList, Linked List ,等。
返回值: 迭代中的下一个元素。
例外情况: 如果该迭代没有更多的元素。
示例:
// 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<String> list = new ArrayList<String>();
// 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<String> 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 element succeeding
// to previous element
System.out.println(iterator.next());
}
}
输出:
Element1
Element2
Element3