Java 用对象替换空数组
代码 据我所知,由于数组已初始化,其内容为空。我正在尝试编写一个名为Java 用对象替换空数组,java,Java,代码 据我所知,由于数组已初始化,其内容为空。我正在尝试编写一个名为 public boolean注册(学生){…} 以将空值替换为成功注册课程的学生的姓名。如果不使用列表,这是可能的吗 数组已初始化且不为null,但数组的条目为null。 不使用列表是可能的(但会更简单)。 您需要存储额外的信息,即注册的学生人数 public Course(Professor professor, String courseName) { this.professor = professor;
public boolean注册(学生){…}
以将空值替换为成功注册课程的学生的姓名。如果不使用列表,这是可能的吗 数组已初始化且不为null,但数组的条目为null。 不使用列表是可能的(但会更简单)。 您需要存储额外的信息,即注册的学生人数
public Course(Professor professor, String courseName) {
this.professor = professor;
this.courseName = courseName;
this.students = new Student[100];
}
你还需要考虑当有超过100名学生时应该发生什么?
这基本上就是ArrayList
所做的,其优点是,如果数据太多,它会自动增加数组。如果您在advanced中知道将有多少个条目,可以使用ArrayList(int initialCapacity)
来避免不必要的复制:
int numberOfStudents = 0;
public boolean enroll(Student student)
{
if(numberOfStudents >= 100) return false;
students[numberOfStudents] = student;
numberOfStudents++;
return true;
}
List student=newarraylist(100);
公共布尔值注册(学生)
{
返回学生。添加(学生);
}
数组实际初始化为100个null
enroll()
方法是课程
类的一部分,每当它存储一个非null
学生
对象时返回true
,它可以实现如下:
List<Student> students = new ArrayList<Student>(100);
public boolean enroll(Student student)
{
return students.add(student);
}
其中,this.counter
是初始化students
数组后,构造函数中初始化为0
的整数
更好的方法是使用ArrayList
而不是数组,以避免每次都检查大小,并且没有最大大小限制。在这种情况下,this.students
将初始化为
public boolean enroll(Student s) {
if ((s == null) || (this.counter >= 100)) {
return false;
}
this.students[this.counter] = s;
++this.counter;
return true;
}
无需计数器。您可以通过两种方式注册学生:
- 使用
而不是array,这样,您就不需要在每次调用ArrayList
时跟踪最后一个条目或迭代数组,例如:enroll
公共课程(教授,字符串课程名称){ 这个。教授=教授; this.courseName=courseName; this.students=new ArrayList(); }
public void注册(学生){ 此.students.add(s); }
- 使用数组并迭代查找最后一个
位置,例如:null
public void注册(学生){ if(null==s)返回;
对于(int i=0;iIt,最好使用可以根据需要增长的
。但是,要用数组实现它,只需跟踪ArrayList
,以便知道将新学生放在哪个索引。数组不是空的,但数组中的对象是空的。数组是用numStudent
“由于数组仅声明且未初始化”,但它已初始化-数组不为空,条目为。是的,您可以按要求执行new student初始化的[100]
学生[i]=new Student()是的,这是我的第一个方法,但由于作业是通过机器评分的,我必须使用标准数组来计算。谢谢你的解决方案!
List<Student> students; ... this.students = new ArrayList<Student>();
public boolean enroll(Student s) { if (s == null) { return false; } this.students.add(s); return true; }