java中.hasNext() 是什么意思?

Python013

java中.hasNext() 是什么意思?,第1张

这是java的迭代器的用法。\x0d\x0a1)使用方法 iterator()要求容器返回一个 Iterator。第一次调用Iterator 的next()方法时,它返回序列的第一个元素。\x0d\x0a2)使用next()获得序列中的下一个元素。\x0d\x0a3)使用hasNext()检查序列中是否还有元素。\x0d\x0a4)使用remove()将上一次返回的元素从迭代器中移除。

java中iterator方法的调用是,对象.iterator(),你说的collection<>coll,首先要看泛型中定义成什么了,如果collection<>coll是collection<Integer>coll,那你的String类型的数据一定加不进去collection<Integer>coll = new ArrayList(),所以就无法用同一个对象的迭代器了。解决方法可以:

Collection<Integer>coll = new ArrayList<Integer>()

coll.add(1111)

Iterator<Integer>collIt = coll.iterator()

while(collIt.hasNext()){

System.out.println(collIt.next())

}

List<String>list = new ArrayList<String>()

list.add("123")

Iterator<String>listIt = list.iterator()

while(listIt.hasNext()){

System.out.println(listIt.next())

}

/*

-------------------华丽的分割线第二种方法

*/

//这是个不负责的设计,正确的设计应该严格控制调用的参数,切记

Collection coll2 = new ArrayList()

coll2.add("123")

coll2.add(123)

Iterator list2It = coll2.iterator()

while(list2It.hasNext()){

System.out.println(list2It.next())

}

可以反复迭代,因为 iterator() 方法每次调用返回的都是一个新的 Iterator。

比如 List 的 iterator() 的实现(在 java.util.AbstractList 中):