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()。

欢迎大家对我的博文进行批评指正哦~希望能和大家共同学习共同进步!

时间: 2024-10-03 11:30:48

Iterator类中的方法next()如何用的相关文章

UIBezierPath和CGContext类中的方法

 UIBezierPath和CGContext类中的方法 CGContextSetLineWidth(ctr, 10); // 即描写边线又填充 CGContextDrawPath(ctr, kCGPathFillStroke); void CGContextSetLineWidth(CGContextRef c, CGFloat width); // 设置边线的宽度 void CGContextAddLineToPoint(CGContextRef c, CGFloat x, CGFloat

切点表达式定义了拦截类中所有方法,所以每个方法都被增强

1.AOP的作用 在OOP中,正是这种分散在各处且与对象核心功能无关的代码(横切代码)的存在,使得模块复用难度增加.AOP则将封装好的对象剖开,找出其中对多个对象产生影响的公共行为,并将其封装为一个可重用的模块,这个模块被命名为"切面"(Aspect),切面将那些与业务无关,却被业务模块共同调用的逻辑提取并封装起来,减少了系统中的重复代码,降低了模块间的耦合度,同时提高了系统的可维护性. 2.DI 和 IOC 概念 依赖注入或控制反转的定义中,调用者不负责被调用者的实例创建工作,该工作

C#中Thread类中Join方法的理解(转载)

指在一线程里面调用另一线程join方法时,表示将本线程阻塞直至另一线程终止时再执行      比如 Java代码   using System; namespace TestThreadJoin { class Program { static void Main() { System.Threading.Thread x = new System.Threading.Thread(new System.Threading.ThreadStart(f1)); x.Start(); Console

WebForm.aspx 页面通过 AJAX 访问WebForm.aspx.cs类中的方法,获取数据(转)

WebForm.aspx 页面通过 AJAX 访问WebForm.aspx.cs类中的方法,获取数据 WebForm1.aspx 页面 (原生AJAX请求,写法一) <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="IsPostBack.WebForm1" %> <!DOCTYPE htm

java 27 - 6 反射之 通过配置文件运行类中的方法

在以前,如果我们想要调用一个类中的方法,只能这样子: 例: 有Cat和Dog两个类,里面有eat和run两个成员方法: 1 public class Dog { 2 3 public void eat() { 4 System.out.println("狗吃肉"); 5 } 6 7 public void run() { 8 System.out.println("狗刨"); 9 } 10 } public class Cat { public void eat()

在类中添加方法和成员变量

在前面我们也了解到了Java语言的最小单位是类.在C语言中有着全局变量,在Java中也有. 在Java中添加全局变量(成员变量)是由三大部分组成的:访问修饰符.数据类型和成员变量. 而访问修饰符有这几种:public .private.protected或者不写(这种将使用默认访问修饰符). 我们在引用对象时,必须对其进行初始化,否则将会报错.如果我们不自己去初始化值,那马那么 电脑回自己默认初始值:0.0.0.null.false.空字符. 在Java类中添加方法也是由:访问修饰符.返回值.方

Java基础知识强化之集合框架笔记33:Arrays工具类中asList()方法的使用

1. Arrays工具类中asList()方法的使用 1 public static <T> List<T> asList(T... a): 把数组转成集合 注意事项: 虽然可以把数组转成集合,但是集合的长度不能改变. 2. 代码示例: (1) 1 package cn.itcast_03; 2 3 import java.util.Arrays; 4 import java.util.List; 5 6 /* 7 * public static <T> List<

jsp中怎么调用java类中的方法

在jsp页面中先要,引入java类 例如: <%@page import="javabean.DbConn"%><!-- 引入包中的"类" --> <!--在用到的地方,直接对类实例化--> <% DbConn  DB=new  DbConn(); %> <!--然后就可以直接调用类中的方法--> <% Connection con=DB.conn(); %> jsp中怎么调用java类中的方法

Java反射机制demo(五)—获得并调用一个类中的方法

这个demo在使用反射机制操作属性之前,主要原因是因为在.class文件字节码中,方法排在属性的前面. 1,获得一个类中的方法 先看一下方法和运行结果.获取所有的方法使用Class类中getMethos()方法. 待获取的类: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 package