开发者社区> 问答> 正文

如何在二维数组中分离不同的值

该数组具有来自不同子类的对象。如何根据那里的子类打印对象?

我使用扫描仪读取学生(研究生和本科生)对象并放入数组中。

我需要使用inheritance和toString方法来获取结果。 txt文件中的原始数据:

G史蒂夫23生物学

U Julia 19音乐长笛,年份:大二

G大卫25数学

我只能按原始顺序读取和打印对象: 研究生姓名:史蒂夫(Steve),年龄:23​​岁,主修:生物学

本科名称:朱莉娅,年龄:19,主修:音乐,年份:大二

毕业生姓名:Dvid,年龄:25,主修:数学

下面是我在测试器文件中使用的方法:

ArrayList studentList = new ArrayList<>(); Student s = new Undergraduate(type,name,major,year); studentList.add(s); Student s = new Graduate(type,name,major); studentList.add(s);

for (Student d:studentList) { System.out.println(d.toString()); } ===预期结果:===

本科生数:1

姓名:朱莉娅(Julia),年龄:19,主修:音乐,年份:大二

研究生人数:2

姓名:史蒂夫(Steve),年龄:23​​岁,专业:生物学

姓名:Dvid,年龄:25岁,专业:数学

展开
收起
小六码奴 2019-10-14 17:09:44 5464 0
1 条回答
写回答
取消 提交回答
  • 最简单的方法是创建两个单独的ArrayList:一个用于本科生,一个用于研究生:

    ArrayList undGrdStudentList = new ArrayList<>(); ArrayList grdStudentList = new ArrayList<>(); if ("U".equals(type)){ Student s = new Undergraduate(type,name,major); undGrdStudentList.add(s); }else{ Student s = new Graduate(type,name,major); grdStudentList .add(s); }

    System.out.println("Number of Undergraduate Students: " + undGrdStudentList.size()); for (Student d:undGrdStudentList) { System.out.println(d.toString()); }

    System.out.println("Number of Graduate Students: " + grdStudentList .size()); for (Student d:grdStudentList ) { System.out.println(d.toString()); }

    2019-10-14 17:10:04
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
重新定义计算的边界 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载