1. 程式人生 > >Iterator類中的方法next()如何用

Iterator類中的方法next()如何用

find explain != itl mil void ash package args

這是一道比較簡單的詞典管理的題目,實現查詞,添加詞語,添加同義詞,查同義詞的功能,當然啦,用到Map(映射)!

1.這是JavaAPI文檔中對方法next()的簡單介紹,我遇到的問題就是拋出了NoSuchElementException異常;

技術分享

2.解決方法:

在45行,46行程序執行的時候報錯了,我的29行

if((map.get(word).equals(map.get(string)))&&(word!=string))原來的寫法是
if((map.get(word).equals(map.get(it.next())))&&(word!=it.next())),後來在28行添上了String string = (String)it.next();程序可以運行了,沒有報錯;

package priv.xiaomin.dictionary;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class DictionaryManeger {
Map<String,String> map = new HashMap<String, String>();
public void findWord(String word){
Set<String>key = map.keySet();
for(Iterator it = key.iterator();it.hasNext();){
if (word.equals(it.next()) ){
System.out.println("該詞的意思是:" + map.get(word));
}
}
}
public void addWordExplain(String word,String explain){
map.put(word, explain);
}
public void addSameExplainWord(String word1,String word2,String explain){
map.put(word1, explain);
map.put(word2, explain);
}
public void findSameWord(String word){
Set<String>key = map.keySet();
int count = 0;
for(Iterator it = key.iterator();it.hasNext();){
String string = (String)it.next();
if((map.get(word).equals(map.get(string)))&&(word!=string)){
System.out.println(word+"的同義詞是"+string);
count++;
}
}
if(count == 0){
System.out.println("該詞"+word+"沒有同義詞");
}
}
public static void main(String[] args) {
DictionaryManeger manager = new DictionaryManeger();
manager.addWordExplain("mother", "parent");
manager.addWordExplain("father", "family");
manager.addWordExplain("brother", "family");
manager.findWord("mother");
manager.findWord("father");
manager.findSameWord("mother");
manager.findSameWord("father");
manager.addSameExplainWord("cat", "dog", "animals");
manager.findWord("cat");
}


}



3.參考了一下別人的說法,循環中不能用兩次(含)的next()。

歡迎大家對我的博文進行批評指正哦~希望能和大家共同學習共同進步!

Iterator類中的方法next()如何用