遍历 Java 中的对象列表



首先,我对Java很陌生,所以如果我的问题不完整,请原谅我。我确实在SO上浏览了一些线程,即使有一些接近的线程,我也不理解它们或无法根据需要修改它们。所以这里有一个问题,下面是我从存储库获得的对象列表。

[ { "esId": 3, "exam": { "examId": 1, "name": "Final Exam", "startDate": "2019-04-15", "endDate": "2019-04-24", "resultReleaseDate": "2019-04-30 07:00:00" } }, { "esId": 44, "exam": { "examId": 15, "name": "Mid Term II", "startDate": "2019-09-20", "endDate": "2019-09-25", "resultReleaseDate": "2019-09-25 18:32:02" }, "essList": [ { "esdId": 74, "subject": { "subjectId": 1, "name": "Math" }, "exDate": "2019-09-20", "startTime": "19:03", "maxMarks": 10, "endTime": "19:03" }, { "esdId": 77, "subject": { "subjectId": 2, "name": "Science" }, "exDate": "2019-09-21", "startTime": "19:03", "maxMarks": 10, "endTime": "19:03" }, { "esdId": 79, "subject": { "subjectId": 3, "name": "English" }, "exDate": "2019-09-20", "startTime": "19:04", "maxMarks": 10, "endTime": "19:04" } ] } ] 从上面的列表中,我想返回endDate大于nowtoday的第一个对象

我尝试通过以下方式做

ArrayList<ExamStandard> examList = new ArrayList<ExamStandard>();
LocalDate today = LocalDate.now();
String date = today.toString();
for(int i = 0; i < examList.size(); i++)
{
if(examList.get(i).equals(exam) == date){
}
}

这开始抛出转换类型的错误。不知道该怎么做,如果有人可以帮助我并解释我该怎么做以及发生了什么,那将非常有帮助。

任何帮助不胜感激,谢谢 维克拉姆

让我假设你到达了你的exDate并且它是字符串格式的。

首先,执行以下操作

String sDate1="31/12/1998";  
Date date1=new SimpleDateFormat("dd/MM/yyyy").parse(sDate1);  
System.out.println(sDate1+"t"+date1); 

date1现在采用日期格式

稍后,您可以使用预定义的日期方法,如下所述

if(date1.after(date2)){
System.out.println("Date1 is after Date2");
}
// before() will return true if and only if date1 is before date2
if(date1.before(date2)){
System.out.println("Date1 is before Date2");
}
//equals() returns true if both the dates are equal
if(date1.equals(date2)){
System.out.println("Date1 is equal Date2");
}

其中 date2 可能是您当前的日期或您想要提供的任何日期。

要返回您需要的内容,请执行以下操作

ExamList exam = new ExamList();
SimpleDateFormat sd=new SimpleDateFormat("dd/MM/yyyy");  
int i = 0;
foreach(ExamList ex : examList){
if(sd.parse(ex.getExDate()).after(date)){
exam = ex;
}
i++;
}

试试吧。

如果需要一些调整,请告诉我,我可以进入我的电脑而不是手机。

注意:您可能需要添加必要的空检查。

最新更新