У меня есть List
из Stat
объектов, и каждый Stat
имеет поле Date
. Этот список может быть очень большим. То, что я хотел бы сделать, - организовать эти объекты в диапазонах дат (недели, чтобы быть конкретными) эффективно. Итак, если на той же неделе происходят два объекта, они переходят в один и тот же List
. Для простоты «недельные» интервалы уже определены, поэтому вам не нужно беспокоиться о том, чтобы подходить к диапазонам.Организация объектов по дате в Java
Итак, вот мой нынешний подход. У меня есть LinkedHashMap<Date, List<Stat>>
, который содержит все даты, которые мне нужны в порядке возрастания, и каждая запись инициализируется пустым ArrayList
. Я думаю о каждом Stat
, итерации по всему набору записей на карте и отслеживанию ближайшей даты, когда stat также больше или равен. Тогда это будет что-то вроде map.get(closestDate).add(stat)
.
Кажется, что должен быть лучший способ сделать это. Возможно, создайте что-то вроде findClosestKeyGreaterThanOrEqualTo
, так что мне не нужно каждый раз перебирать всю карту?
Любые идеи?
Может вы лучше понимаете, что именно хотите? Очевидно, что новая статистика должна быть вставлена на той же неделе, что и та, чьи данные наиболее близки? – djechlin
Таким образом, ключи карты могут быть «Март 3», «Мар 10», «Март 17» и т. Д. Если стат имеет дату «11 марта», он пойдет в список по дате «Мар 10». «Мар 10» - самая близкая дата, что «11 марта» также больше ... Я думаю, что имя гипотетической функции может быть более ясным. – jlars62