我正在完成我的课程并想出了这种情况。这是我的代码。
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值?
答案 0 :(得分:3)
是的,您可以创建一个同时包含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()获取学生列表。
答案 1 :(得分:3)
您只能从方法中返回一件事。
你必须选择:
将ArrayList作为参数传递给方法。调用者将实例化ArrayList,并且该方法将填充它。然后,除了int
之外,您的方法还可以返回您希望返回的ArrayList
。
将ArrayList
和int
换成某个自定义类并更改您的方法以返回该类的实例(您也可以使用Object[]
执行此操作,但是会很难看。
答案 2 :(得分:1)
创建类arling the arraylist和整数。
classname name = new classname();
name.integerValue= integerValue;
name.arraylist= arraylist;
return arraylist;
答案 3 :(得分:0)
我喜欢创建一个将ArrayList和int作为成员的新类型。
class Result {
public final int value;
public final List<> list;
public Result(int val, List<> list) {
this.value = val;
this.list = list;
}