java集合中的next()和hasNext()之间的区别?

Java提供了Iterator和ListIterator类来检索集合对象的元素。

hasNext()方法

如果集合对象具有下一个元素,则这些接口的hasNext()方法将返回true,否则将返回false。

示例

import java.util.ArrayList;
import java.util.Iterator;
public class hasNextExample{
   public static void main(String[] args){
      ArrayList <String> list = new ArrayList<String>();
      //实例化ArrayList对象
      list.add("JavaFX");
      list.add("Java");
      Iterator<String> it = list.iterator();
      System.out.println(it.hasNext());
      it.next();
      System.out.println(it.hasNext());
      it.next();
      System.out.println(it.hasNext());
   }
}

输出结果

true
true
false

next()方法

Iterator和ListIterator的next()方法返回集合的下一个元素。

示例

import java.util.ArrayList;
import java.util.Iterator;
public class nextExample{
   public static void main(String[] args){
      ArrayList <String> list = new ArrayList<String>();
      //实例化ArrayList对象
      list.add("JavaFX");
      list.add("Java");
      list.add("WebGL");
      list.add("OpenCV");
      list.add("OpenNLP");
      list.add("JOGL");
      list.add("Hadoop");
      list.add("HBase");
      list.add("Flume");
      list.add("Mahout");
      list.add("Impala");
      System.out.println("Contents of the array list (first to last): ");
      Iterator<String> it = list.iterator();
      while(it.hasNext()) {
         System.out.println(it.next());
      }
   }
}

输出结果

Contents of the array list (first to last):
JavaFX
Java
WebGL
OpenCV
OpenNLP
JOGL
Hadoop
HBase
Flume
Mahout
Impala