Не удается найти правильный способ хранения моих данных

В Java 8:

Comparator> valueComparator = 
    (e1, e2) -> e1.getValue().getField().compareTo(e2.getValue().getField());

Map sortedMap = 
    unsortedMap.entrySet().stream().
    sorted(valueComparator).
    collect(Collectors.toMap(Entry::getKey, Entry::getValue,
                             (e1, e2) -> e1, LinkedHashMap::new));

Использование Guava :

Map map = ...;
Function getField = new Function() {
    public Integer apply(Item item) {
        return item.getField(); // the field to sort on
    }
};
comparatorFunction = Functions.compose(getField, Functions.forMap(map));
comparator = Ordering.natural().onResultOf(comparatorFunction);
Map sortedMap = ImmutableSortedMap.copyOf(map, comparator);

-4
задан Haroon Ashfaq 13 July 2018 в 13:27
поделиться

2 ответа

Хорошо, если вы считаете время выполнения и хотите легко управлять днями посещения, как только у вас будет более 7 дней. Затем, как и другие, вы можете создать свой собственный класс и сохранить массив этого.

Если вы планируете работать дольше 7 дней, я бы также подумал о том, чтобы использовать List для отслеживания посещаемости в Student class - таким образом, метод, который будет отмечать посещаемость, может просто удалить первый элемент из списка, если он длится более 7 дней и сохраняет порядок дней - без необходимости делать это вручную (перемещать каждый элемент на одно место слева) - что если вы храните его в массиве.

0
ответ дан user 17 August 2018 в 12:44
поделиться

Если вы хотите сделать это очень просто, вы можете использовать карту и сопоставить имя студента с массивом из 7 булевых, причем каждый булев, представляющий «настоящий» или «отсутствующий» в этот день недели.

0
ответ дан Zach 17 August 2018 в 12:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: