2013-09-09 2 views
1

У меня есть список массивов некоторых пользовательских объектов. Этот пользовательский объект имеет поле Date.Сравнение и условная проверка в Java ArrayList

У меня есть метод, который имеет список выше и одну дату в качестве аргументов. Теперь мне нужно найти последнюю запись из списка до даты, которая передается в качестве аргумента.

Может кто-нибудь, пожалуйста, дайте мне знать, как это сделать?

+3

Не могли бы вы добавить код, о котором говорите? – Jono

+0

Предварительно отсортировать список. Или еще лучше, используйте отсортированную очередь. – blgt

+3

Итерации по списку. Следите за тем, какой элемент в списке имеет последнюю доступную «Дата», которую вы обнаружили до сих пор. –

ответ

3

Отслеживание приемлемого Date и использование API getTime() для обновления допустимой переменной. Этот код можно было бы оптимизировать, но я думаю, что у вас есть идея.

public static COjbect getClosestRecordToDate(final List<CObject> list, final Date date) 
{ 
    if (list == null || list.isEmpty()) 
      return null; 

    final CObject temp = list.get(0); 

    for (final CObject obj : list) 
    { 
      final long time = obj.getDate().getTime(); 

      if (time < date.getTime() && time > temp.getTime()) 
       temp = obj; 
    } 

    return temp; 
} 

Edit: Благодаря @David Wallace для редактирования.

Смежные вопросы