从单个方法返回 ArrayList 和 int 值。可能吗?
Posted
技术标签:
【中文标题】从单个方法返回 ArrayList 和 int 值。可能吗?【英文标题】:Return an ArrayList and int value from a single method. Is it Possible? 【发布时间】:2016-04-05 06:27:51 【问题描述】:我正在完成我的课程作业并想出了这种情况。这是我的代码。
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和integer封装在一个类中并返回其对象 How to return multiple objects from a Java method?的可能重复 【参考方案1】:创建包含数组列表和整数的类。
classname name = new classname();
name.integerValue= integerValue;
name.arraylist= arraylist;
return arraylist;
【讨论】:
【参考方案2】:是的,您可以创建一个同时包含 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() 来获取学生列表。
【讨论】:
你能用示例代码进一步解释一下吗? 谢谢!真的很有用【参考方案3】:我喜欢创建一个以 ArrayList 和 int 作为成员的新类型。
class Result
public final int value;
public final List<> list;
public Result(int val, List<> list)
this.value = val;
this.list = list;
【讨论】:
【参考方案4】:一个方法只能返回一件事。
你必须选择:
将 ArrayList 作为参数传递给方法。调用者将实例化 ArrayList 并且该方法将填充它。然后您的方法可以返回除ArrayList
之外的您希望返回的int
。
将ArrayList
和int
包装在某个自定义类中并更改您的方法以返回该类的实例(您也可以使用Object[]
执行此操作,但这会很难看)。
【讨论】:
以上是关于从单个方法返回 ArrayList 和 int 值。可能吗?的主要内容,如果未能解决你的问题,请参考以下文章