为了账号安全,请及时绑定邮箱和手机立即绑定

尝试向数组中的对象添加信息

尝试向数组中的对象添加信息

一只甜甜圈 2023-10-19 21:27:41
所以,大家只是做一个作业,尝试将姓名、课程和 ID 添加到数组中,并寻找比我目前所做的更干净的方法。我目前所做的达到了我想要的,但我确信他们是一种更干净的方式来做到这一点,就好像我有 100 个这样的事情要做一样,这将永远需要    students[0].setName("John Doe");     students[1].setName("Jane Doe");     students[2].setName("John Smith");     students[0].setCourse("2BA");     students[1].setCourse("2BA");     students[2].setCourse("2BSc");     students[0].setID(44444444);     students[1].setID(23333333);     students[2].setID(22222222);
查看完整描述

3 回答

?
慕婉清6462132

TA贡献1804条经验 获得超2个赞

关于每个数组条目背后的基础对象的信息不足,但您可以使用构造函数参数将它们创建为单行代码。


class MyArrayObject {

    private String name;

    private String course;

    private long id;


    public MyArrayObject(String name, String course, long id) {

        this.name = name;

        this.course = course;

        this.id = id;

    }

}

...然后像这样填充你的数组


students[0] = new MyArrayObject("John Doe", "2BA", 444444);

students[1] = new MyArrayObject("Jane Doe", "2BA", 445566);

students[2] = new MyArrayObject("John Smith", "2BSc", 442200);

它仍然是意大利面条式代码,但更少。


为了给您更好的答案,我们需要有关该对象的更多信息,它来自哪里,您拥有哪些数据源,以及为什么要使用此类硬编码值。


查看完整回答
反对 回复 2023-10-19
?
杨__羊羊

TA贡献1943条经验 获得超7个赞

您可以使用包含您的数据的文件。您可以选择任何格式(XML、json、CSV 等)。假设您选择了 CSV,这是表示数据的最简单的格式之一。CSV 中的每一行将包含:


姓名、课程、ID


编写一些代码将文件逐行读取到字符串中。然后对于每一行(每个字符串)你可以这样做:


String [] studentsStr = line.split(',');

然后你的数组将在索引处保存 3 个字符串:


1:姓名 2:课程 3:ID


由于您的 CSV 文件可能包含不确定大小的学生,因此您可以使用 ArraList。


声明数组列表


List<Student> studentL = new ArrayList<>();

对于 CSV 文本文件中的每一行:


Student std = new Student();

std.setName(studentsStr[0]);

std.setCourse(studentsStr[1]);

std.setID(studentsStr[2]);

studentL.add(std);

然后,您可以将任意数量的学生添加到 CSV 中,而无需对代码进行任何更改。


查看完整回答
反对 回复 2023-10-19
?
开心每一天1111

TA贡献1836条经验 获得超13个赞

真正的应用程序永远不会像您在这里所做的那样以硬编码方式获取业务价值。它们通常接受来自用户输入、数据库或其他一些系统的值,并使用循环来处理基于集合和数组的数据结构。如果您正在为单元测试用例填充数据,那么使用 Student 类构造函数是一种替代方法。



查看完整回答
反对 回复 2023-10-19
  • 3 回答
  • 0 关注
  • 86 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信