我正在做作业,遇到了这种情况。这是我的密码。
public static ArrayList<Student> checkPresent(String unitID, String week){
int present = 0;
ArrayList<Student> studentDetails = Student.getStudentDetails();
ArrayList<AttendanceLog> pickedList = AttendanceLog.pickFromAttendanceLog(unitID, week);
for(Student student : studentDetails){
student.setPresent("N");
for(AttendanceLog attendance : pickedList){
if(student.getStudentNo().equals(attendance.getStudentID())){
student.setPresent("Y");
present++;
}
}
}
return studentDetails;
}
我只返回了ArrayList
,但我也想得到整数值present
。有可能吗?或者如何获取int值?
一个方法只能返回一个东西。
你必须选择:
-
将ArrayList作为参数传递给该方法。调用者会实例化ArrayList,方法会填充它。然后,你的方法除了返回
ArrayList
之外,还可以返回你想要返回的int
。 -
将
ArrayList
和int
封装在某个自定义类中,然后更改方法以返回该类的实例(也可以使用Object[]
来执行此操作,但这会很难看)。
是的,您可以创建一个同时包含ArrayList和整数的类
class SomeClass{
ArrayList<Student> aList;
int present;
}
并让您的方法返回此类的实例
更新:
public static SomeClass checkPresent(String unitID, String week){
int present = 0;
ArrayList<Student> studentDetails = Student.getStudentDetails();
ArrayList<AttendanceLog> pickedList = AttendanceLog.pickFromAttendanceLog(unitID, week);
for(Student student : studentDetails){
student.setPresent("N");
for(AttendanceLog attendance : pickedList){
if(student.getStudentNo().equals(attendance.getStudentID())){
student.setPresent("Y");
present++;
}
}
}
SomeClass someCls = new SomeClass();
someCls.present = present;
someCls.aList = studentDetails;
return someCls;
}
请注意,在您的示例中,您静态地获取studentDetails,因此以这种方式编码没有多大意义,因为您总是可以通过调用Student.getStudentDetails().
创建一个类来存放数组列表和整数。classname name = new classname();
name.integerValue= integerValue;
name.arraylist= arraylist;
return arraylist;
我喜欢创建一个以ArrayList和int为成员的新类型。
class Result {
public final int value;
public final List<> list;
public Result(int val, List<> list) {
this.value = val;
this.list = list;
}