猿问

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

所以,大家只是做一个作业,尝试将姓名、课程和 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);


一只甜甜圈
浏览 126回答 3
3回答

慕婉清6462132

关于每个数组条目背后的基础对象的信息不足,但您可以使用构造函数参数将它们创建为单行代码。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);它仍然是意大利面条式代码,但更少。为了给您更好的答案,我们需要有关该对象的更多信息,它来自哪里,您拥有哪些数据源,以及为什么要使用此类硬编码值。

杨__羊羊

您可以使用包含您的数据的文件。您可以选择任何格式(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 中,而无需对代码进行任何更改。

开心每一天1111

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

相关分类

Java
我要回答