输出有点问题

输出有点问题

相关代码:

package com.work.excise;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
//import java.util.Map;
import java.util.Scanner;

public class RoomTest {

public static void main(String[] args) {
Welcome wel=new Welcome();
wel.welcome();

Scanner sc=new Scanner(System.in);
List<Room> list=new ArrayList<Room>();
for(int i=0;i<2;i++) {
System.out.print("第"+(i+1)+"个的房源编号:");
int num=i+1;
System.out.println(num);
System.out.println("请输入第"+(i+1)+"个的房源名称");
String name=sc.next();
System.out.println("请输入第"+(i+1)+"个的房源地址");
String dress=sc.next();
System.out.println("请输入第"+(i+1)+"个的房源户型");
String mode=sc.next();
Room room=new Room(num, name, dress, mode);
list.add(room);
}

Iterator<Room> it=list.iterator();
for(int j=0;j<list.size();j++) {
System.out.println(it.next().getNum());
}




}

}

相关截图:

http://img1.sycdn.imooc.com//climg/60cf550209217ab915750867.jpg

问题描述:

如果在输出语句上加it.next().getName(),就会报错

相关截图:

http://img1.sycdn.imooc.com//climg/60cf555209ba207518390869.jpg

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,出现NoSuchElementException的原因是没有元素可以迭代。

it.next()获取当前元素后,就指向了下一个元素,所以it.next().getNum()和it.next().getName()获取的不是同一个元素的编号和名称。集合中只有两个元素,遍历完后没有元素,再使用it.next()就会报NoSuchElementException错误。

建议同学提问时在问答区上传全部代码,便于老师排错并快速给予答复。

祝学习愉快~

  • 眯66 提问者 #1

    好的,谢谢。

    如果我想同时取出List集合中的其中两个对应的元素,应该怎么解决比较好呢?

    就像我想取出房源编号和房源户型这两个元素。

    2021-06-21 14:00:58
  • 好帮手慕小小 回复 提问者 眯66 #2

    同学你好,可以将it.next()获取的内容用变量存储下来,在通过变量获取来获取房源编号和房源户型。

    Room room = it.next();
    System.out.println(room.getNum());
    System.out.println(room.getName());

    祝学习愉快~

    2021-06-21 14:43:07
  • 眯66 提问者 回复 好帮手慕小小 #3

    谢谢?

    2021-06-21 19:34:30
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师