У меня есть Map<String,Integer>
и отсортирован по значению, как это:Split отображение в двух списках
set = map.entrySet();
list = new ArrayList<Map.Entry<String, Integer»(set);
Collections.sort(list, (o1, o2) -> (o2.getValue()).compareTo(o1.getValue()));
У меня уже есть отсортированный список целое с этой карты:
word_used = new ArrayList<Integer>(map.values()
.stream()
.sorted()
.collect(Collectors.toList()));
Collections.reverse(word_used);
Но как я могу получить список строк, который будет отсортирован равным Map (по значению)?
Я имею в виду, если у меня есть карта с элементами:
map.put("eggs",1500);
map.put("echo",150);
map.put("foo",320);
map.put("smt",50);
и сортировать это нравится:
eggs : 1500
foo : 320
echo : 150
smt : 50
Мне нужно получить 2 списка:
eggs
foo
echo
smt
и
1500
320
150
50
Будет 'word_list = новый ArrayList (map.keySet() .stream() .sorted() .collect (Collectors.toList()));' работа? –
jr593
Обратите внимание, что вводить в заблуждение, что «Карта» сортируется. Построение и сортировка «Список» записей «Карта» не влияет на порядок итераций этих представлений коллекции «Карта». У вас есть только отсортированный «Список», который, тем не менее, может быть полезен. –