我有一個具有以下數據列表迭代器卡住的Java
1文件^我最恨的就是電話它從來沒有我告訴它做的是緩慢的響應時間s ** T網,並會不斷因爲我會將太多應用程序或視頻加載到手機上,所以我認爲我認爲這是爲媒體驅動的人設計的。如果你不介意你的手機鎖定或不得不出廠重置它每隔幾天去它#
2 ^這個設備是第一個先進的設備,實際上有很多事情要做,它有很小的錯誤和任何智能手機的最佳瀏覽器。在我的手機3G和3GS創新,我們今天做智能手機的方式。#
每行分隔用「#」和每行是相隔一個「^」 我將它們存儲在一個listoflists並打印它們。 代碼(下面給出)正確地打印2行,但在此之後卡住而不退出。我不知道問題出在哪裏。請幫忙。
FileReader fr=new FileReader("comments.csv");
Scanner sc= new Scanner(fr);
sc.useDelimiter("#");
ArrayList<ArrayList<String>> listoflists= new ArrayList<ArrayList<String>>();
ArrayList<String> singlist= new ArrayList<String>();
while(sc.hasNext())
{
String line=sc.next();
String[] element=line.split("\\^");
for(int i=0; i< element.length;i++)
{
singlist.add(element[i]);
bw.write(element[i]);
bw.newLine();
//System.out.print(element[i]+"\n");
}
listoflists.add(singlist);
}
// it running properly till this part without getting stuck in infinite loop
ListIterator<String> iter1=singlist.listIterator();
ListIterator<ArrayList<String>> iter2=listoflists.listIterator();
while(iter2.hasNext())
{
while(iter1.hasNext())
{
System.out.println(iter1.next());
}
}
感謝
iter2未被轉發;所以iter2.hasNext()將始終爲真。在某處調用iter2.next() – vpram86
使用foreach循環來避免這樣的錯誤:'for(List singleList:listOfLists){for(String s:singleList){...}} –
@ vpram86它工作正常!謝謝,但是如果指針沒有轉發,迭代器如何打印數據的第二行?(因爲我將兩行都作爲輸出):/ – Arun