从单个方法返回一个ArrayList和int值.有可能吗



我正在做作业,遇到了这种情况。这是我的密码。

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值?

一个方法只能返回一个东西。

你必须选择:

  1. 将ArrayList作为参数传递给该方法。调用者会实例化ArrayList,方法会填充它。然后,你的方法除了返回ArrayList之外,还可以返回你想要返回的int

  2. ArrayListint封装在某个自定义类中,然后更改方法以返回该类的实例(也可以使用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;
}

最新更新