
用迭代器求map中键、值,其中键为自己创建的类的对象,结果如下,求解问题所在!
publicstaticvoidmain(String[]args){Map<Student,String>map=newHashMap<Student,String>(...
public static void main(String[] args) { Map<Student, String> map = new HashMap<Student, String>(); map.put(new Student("avc",20), "aaa"); map.put(new Student("aaa",22), "sss"); map.put(new Student("bbb",24), "ddd"); Iterator<Student> it = key.iterator(); while(it.hasNext()){ System.out.println(it.next()+map.get(it.next())); }-----------------------输出结果如下:aaa22dddException in thread "main" java.util.NoSuchElementException at java.util.HashMap$HashIterator.nextEntry(HashMap.java:925) at java.util.HashMap$KeyIterator.next(HashMap.java:956) at cn.itcast.demo.HomeWork1.main(HomeWork1.java:33)------图片如下(注释中的for遍历成功了),希望大神们解答疑惑。
展开
展开全部
问题出在输出语句,首先Iterator这个接口注释里就说了,如果没有更多的元素,你调用这个方法就会抛NoSuchElementException
异常。next每调用一次,都会让指针后移一位。你可以这么写:
Student s = it.next();
System.out.println(s+map.get(s));
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询