Java集合练习5-2,烦请老师检查并指正~

Java集合练习5-2,烦请老师检查并指正~

老师有几个疑问:

  1. 如何增加对编号存在与否的判断?list里面好像只有判断对象是否存在的方法,返回值是布尔类型。

  2. 在添加房源的方法中需要加入while循环吗?如果没有循环的话,好像当填错编号后,系统会报错并不会自己继续执行程序。

  3. 请问这个区间查看房源信息是想怎么查找啊?

House 类代码
​public House(){
}

public House(int num, String name, String add, String type) {
this.setNum(num);
this.setName(name);
this.setAdd(add);
this.setType(type);
}

public int getNum() {
return num;
}

public void setNum(int num) {
this.num = num;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getAdd() {
return add;
}

public void setAdd(String add) {
this.add = add;
}

public String getType() {
return type;
}

public void setType(String type) {
this.type = type;
}

TestHouse 测试类代码

​/*
* 展示菜单
*/
public void menu() {
System.out.println("************************************************************");
System.out.println("1--添加房源");
System.out.println("2--查看具体房源信息");
System.out.println("3--区间查看房源信息");
System.out.println("0--退出房源中心");
System.out.println("************************************************************");
}

/*
* 添加房源
*/

public void addHouse() {
System.out.println("请输入房源编号:");
System.out.println("编号从0开始,并为连续数值,如:0,1,2,3");
try {
num = sc.nextInt();
} catch (InputMismatchException e) {
System.out.println("数字操作输入不正确 ,请重新输入:");
num = sc.nextInt();

}
System.out.println("请输入房源名称:");
String name = sc.next();
System.out.println("请输入房源地址:");
String add = sc.next();
System.out.println("请输入房源户型:");
String type = sc.next();
house = new House(num, name, add, type);
list.add(num, house);

}

/*
* 展示所有房源信息
*/
public void display() {
Iterator it = list.iterator();
System.out.println("全部房源信息:");
System.out.println("房源编号 房源名称");
while (it.hasNext()) {
house = (House) it.next();
System.out.println(house.getNum() + " " + house.getName());
}
}

/*
* 查看具体某一房源信息
*/

public void showOne() {
System.out.println("请输入要查看的具体房源编号:");
System.out.println("编号从0开始,并为连续数值,如:0,1,2,3");
try {
num = sc.nextInt();
} catch (InputMismatchException e) {
System.out.println("数字操作输入不正确 ,请重新输入:");
num = sc.nextInt();
}
house = list.get(num);
String str = "房源编号:" + house.getNum() + "\n房源名称:" + house.getName() + "房源地址:" + house.getAdd() + "房源类型:"
+ house.getType();
System.out.println(str);
}

/*
* 主方法测试整个程序运行
*/
public static void main(String[] args) {
TestHouse th = new TestHouse();
Scanner sc = new Scanner(System.in);
List<House> list = new ArrayList<House>();
House house = null;
int num = 0;
while (true) {
th.menu();
System.out.println("请输入相应数字进行操作:");
int input = 0;
try {
input = sc.nextInt();
} catch (InputMismatchException e) {
System.out.println("数字操作输入不正确 ,请重新输入:");
input = sc.nextInt();
}
switch (input) {
case 0:
System.out.println("结束程序");
System.exit(0);
case 1:
th.addHouse();
th.display();
break;
case 2:
th.display();
th.showOne();
break;
case 3:
System.out.println("区间查看房源信息是想按照什么查找?");
break;
}
}
}



正在回答 回答被采纳积分+1

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

1回答
好帮手慕小蓝 2021-10-06 11:59:44

同学你好,老师对于同学的问题逐个解答:

1.可以自定义一个方法进行判断,方法中可以遍历List集合中的对象,将对象的num属性与编号进行对比来判断是否存在;参考代码如下:

https://img1.sycdn.imooc.com//climg/615d1f2e0997909205390225.jpg

2.可以使用while循环以实现错误输入之后的重新输入。功能的实现方式没有标准答案,同学可以开动脑筋,自由的选择实现方式。

3.是按照编号值的区间进行查找的。需要用户输入两个int类型的值,查询所有编号为这两个值之间的对象。例如用户输入的是3和5,那么需要查询出编号为3、4、5的三个对象信息。


问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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