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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Iterator类中的方法next()如何用相关的知识,希望对你有一定的参考价值。

这是一道比较简单的词典管理的题目,实现查词,添加词语,添加同义词,查同义词的功能,当然啦,用到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()如何用的主要内容,如果未能解决你的问题,请参考以下文章

设计模式——迭代器(Iterator)模式

如何用matlab绘制三维地形图

java中的toString如何用

当nextjs中的语言改变时,如何用next-i18next改变<Html“lang”/>?

对VS中的winform窗体,如何用代码实现子控件在父控件中的相对位置的设置?请问C#语言实现

如何用selenium模拟鼠标操作