迭代列表中的值并获取最新的最新日期

时间:2017-08-30 02:13:18

标签: java foreach iteration

我正在申请春季申请。我有一个LinkedHashMap<Integer, List<MyDTO>>对象,在地图的值(即List<MyDTO>)中我拥有保存日期的属性myDate。我想迭代LinkedHashMap<Integer, List<MyDTO>>并从List<MyDTO> myDate属性中获取最早和最晚的日期。

LinkedHashMap<Integer, List<MyDTO>> myResults =  myService.getResultData(myDTO);

 for (Map.Entry results : myResults.entrySet()) {
     List<MyDTO> myDTOList = (List<MyDTO>) results.getValue();

     //some business logic to process the list object, myDate property is in this myDTOList from which i need to get the oldest anad latest date.

}

上面是示例代码,我试图迭代Map(myResults)并获取地图对象的值List<MyDTO>如何从List对象(myDTOList)中的myDate属性中存储的日期中获取最旧和最新日期的任何建议? ,

2 个答案:

答案 0 :(得分:0)

只需迭代import re pattern = ".*?i need to know about (.*)" content = re.search(pattern, sentence).group(1) ,并使用两个变量List<MyDTO>max来记录最新日期和最早日期,这很容易实现,所以我认为你可以自己编写代码

希望我没有误解你的问题。

答案 1 :(得分:0)

这是一个简单的Java代码,用于获取最早和最新的日期。还有很多其他方法可以实现这一目标。

import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;

public class CompareDates {

    public static void main(String[] args){
        List<Date> dates = new ArrayList<Date>();
        Date date1 = new GregorianCalendar(2014, Calendar.FEBRUARY, 11).getTime();
        Date date2 = new GregorianCalendar(2015, Calendar.MARCH, 2).getTime();
        Date date3 = new GregorianCalendar(2016, Calendar.JANUARY, 4).getTime();
        Date date4 = new GregorianCalendar(2017, Calendar.MARCH, 17).getTime();
        Date date5 = new GregorianCalendar(2017, Calendar.FEBRUARY, 12).getTime();
        Date date6 = new GregorianCalendar(2017, Calendar.JULY, 14).getTime();

        dates.add(date1);
        dates.add(date2);
        dates.add(date3);
        dates.add(date4);
        dates.add(date5);
        dates.add(date6);

        Date minDate = dates.get(0);
        Date maxDate = dates.get(0);

        for(int i=1; i < dates.size(); i++){
            if(dates.get(i).before(minDate)){
                minDate = dates.get(i);
            }
            if(dates.get(i).after(maxDate)){
                maxDate = dates.get(i);
            }
        }

        System.out.println("Min date is ---"+minDate);
        System.out.println("Max date is ---"+maxDate);

    }
}

在您的代码中,您可以使用Date API的beforeafter以类似的方式执行比较。

LinkedHashMap<Integer, List<MyDTO>> myResults =  myService.getResultData(myDTO);

 for (Map.Entry results : myResults.entrySet()) {
     List<MyDTO> myDTOList = (List<MyDTO>) results.getValue();
        Date minDate, maxDate;
        for(int i=0; i < myDTOList.size(); i++){
            if(i == 0){
                 minDate = myDTOList.get(0).getMyDate();
                 maxDate = myDTOList.get(0).getMyDate();
            }
            if(myDTOList.get(i).before(minDate)){
                minDate = dates.get(i);
            }
            if(myDTOList.get(i).after(maxDate)){
                maxDate = dates.get(i);
            }
        }

        System.out.println("Min date is ---"+minDate);
        System.out.println("Max date is ---"+maxDate);

}