У меня есть следующие списки:Как выполнить сортировку списка hashmap?
Map<String, Integer> map = new HashMap<String, Integer>();
Map<String, Map<Integer, Integer>> map2 = new HashMap<String, Map<Integer, Integer>>();
после выполнения некоторых вычислений в моем списке карт, используя следующий код
map.entrySet().stream().sorted(Map.Entry.<String, Integer>comparingByValue()
.reversed()).limit(1000).forEach(System.out::println);
возвращает список, который сортируется на основе целого числа, а также имя :
team1=1511
team4=1106
team2=805
team3=792
это означает, что team1 имеет первое место со временем 1211 и team4 второе место со временем 1106 и так далее.
Теперь в моем map2 я хотел бы быть в состоянии иметь один и тот же список в зависимости от времени водителей, но он должен сортировать так:
team1=1511
team4=1106
team1=1010
team2=905
team2=892
team3=750
team3=740
team4=600
это означает, что team1 имеет первое место с время 1511, затем команда4 со временем 1106, затем снова команда1 со временем 1010 и так далее.
(в основном, у вас есть команда, и каждая команда имеет водитель по крайней мере 2 и после выполнения некоторых вычислений вы хотите, чтобы иметь возможность видеть, кто выиграл гонку)
для map2 я использую следующий для сортировки и return:
map2.entrySet().stream().sorted(Map.Entry.<String, Map<Integer, Integer>>comparingByKey()
.reversed()).limit(1000).forEach(System.out::println);
но это не возвращает правильный результат.
Я хочу знать, можно ли это сделать с помощью hashmap или, возможно, даже с помощью ArrayList?
Что вам нужно сделать, чтобы вычислить время команды в map2? –
@ GrzegorzGórkiewicz Я сделал вычисления в другом методе, я просто хочу разобраться в том, как я объяснил выше. –
'new HashMap>();' ist не такая же структура данных, как 'new HashMap ();' ... Вот почему я не знаю, где вы поместите эти времена;) –