當前位置:編程學習大全網 - 源碼下載 - Java中如果集合叠代器已經叠代完了,如果還想叠代,只能在調用壹遍iterator返回壹個新的嗎?

Java中如果集合叠代器已經叠代完了,如果還想叠代,只能在調用壹遍iterator返回壹個新的嗎?

答: 是的,需要重新調用.iterator()方法,放回1個新的叠代器.?

原因: 1: ?因為叠代器使用完了,裏面也就沒有元素了,

2: 並且java語言沒有提供重置的方法.?

代碼如下

import?java.util.ArrayList;

import?java.util.Iterator;

public?class?ListDemo?{

public?static?void?main(String[]?args)?{

ArrayList<Integer>?list?=?new?ArrayList<Integer>();

list.add(5);

list.add(3);

list.add(2);

Iterator<Integer>?it?=?list.iterator();

while?(it.hasNext())?{

System.out.println(it.next());

}

System.out.println(it.hasNext());//?false?表示沒有元素了

//System.out.println(it.next());//會拋出異常?NoSuchElementException

it?=?list.iterator();?//從集合裏重新獲得叠代器

}

}

拓展思考:

對於此類問題,往往是對java類不太熟悉, 可以經常使用java api文檔, 查看文檔,妳會快速了解到某個類的方法有哪些, 繼承了哪些接口等情況,

比如Iterator類的方法說明如下

方法摘要

boolean hasNext()

如果仍有元素可以叠代,則返回 true。

E next()

返回叠代的下壹個元素。

void remove()

從叠代器指向的 collection 中移除叠代器返回的最後壹個元素(可選操作)。

  • 上一篇:spring 配置文件的bean自動註入失敗的解決方法是什麽?
  • 下一篇:Swift鬥魚項目源代碼
  • copyright 2024編程學習大全網