2011-06-20 41 views
1

我正在考虑一个文本文件并将每个单词存储在一个数组列表中。然而,问题是,当我遍历数组列表并打印内容时,这些单词会出现很多次,而且不一定按正确的顺序排列。以下是以下代码片段:从ArrayList打印

public static void main(String args[]) 
    { 
     try 
     { 
      ArrayList storeWord = new ArrayList(); 


      Scanner scannerWord = new Scanner(new File("word")); 

      while(scannerWord.hasNext()) { 
       String word = scannerWord.next();{ 
        storeWord.add(word); 

        Iterator itr = storeWord.iterator(); 
        while(itr.hasNext()) 
         System.out.println(itr.next()); 

       } 

有谁知道问题出在哪里以及如何解决? 谢谢。

回答

5

试试这个

public static void main(String args[]) { 
    ArrayList storeWord = new ArrayList(); 
    Scanner scannerWord = new Scanner(new File("word")); 

    while(scannerWord.hasNext()) { 
     storeWord.add(scannerWord.next()); 
    } 

    Iterator itr = storeWord.iterator(); 
    while(itr.hasNext()){ 
     System.out.println(itr.next()); 
    } 
} 

你的 '打印' 循环是嵌套在你的'阅读'循环中。

+0

非常感谢! – Pandy

3

您在每次阅读时打印出您的整个列表。这可能是每个单词多次显示的原因。

你可能想:

Scanner scannerWord = new Scanner(new File("word")); 

while(scannerWord.hasNext()) { 
    String word = scannerWord.next();{ 
    storeWord.add(word); 
} 
Iterator itr = storeWord.iterator(); 
while(itr.hasNext()) 
    System.out.println(itr.next()); 
1

你需要把你的迭代器和打印while循环淘汰原有的while循环