Сортировка с помощью Stream api

163
22 июля 2021, 01:30
    package src;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
import java.util.Map.Entry;
public class API
{
    public static void main(String[] args) throws FileNotFoundException
    {
        Scanner scanner = new Scanner(new File("C:\\Users\\user13\\Desktop\\text.txt")).useDelimiter("[^a-zA-Z]+");
        Map<String, Integer> map = new HashMap<String, Integer>();
        while (scanner.hasNext())
        {
            String word = scanner.next();
            if (map.containsKey(word))
            {
                map.put(word, map.get(word)+1);
            }
            else
            {
                map.put(word, 1);
            }
        }
        List<Map.Entry<String, Integer>> entries = new ArrayList<Entry<String,Integer>>( map.entrySet());
        Collections.sort(entries, new Comparator<Map.Entry<String, Integer>>() {
            @Override
            public int compare(Map.Entry<String, Integer> a, Map.Entry<String, Integer> b) {
                return a.getValue().compareTo(b.getValue());
            }
        });
        for(int i = 0; i < map.size(); i++){
            System.out.println(entries.get(entries.size() - i - 1 ).getKey()+" = "+entries.get(entries.size() - i - 1 ).getValue());
        }
    }
}

Помогите, пожалуйста, переписать программу, чтобы сортировать с помощью STREAM API

Answer 1
List<Map.Entry<String, Integer>> entries = map.entrySet()
   .stream()
   .sorted(Map.Entry.comparingByValue())
   .collect(Collectors.toList());
READ ALSO
Как работать с форматом Q15? Как вообще тип данных float преобразовать в Q15. Можете привести пример?

Как работать с форматом Q15? Как вообще тип данных float преобразовать в Q15. Можете привести пример?

Как вообще тип данных float преобразовать в Q15 в данном коде? Можете привести пример? Нужно вычислять что то, но не знаю как именноСпасибо

141
Столкнулся с проблемой cannot find symbol

Столкнулся с проблемой cannot find symbol

Я новичок в Java поэтому не судите строгоЯ пытался потренироваться но столкнулся с проблемой что компилятор не понимает символ

240
Поиск совпадений эл-та массива с ключом hashmap

Поиск совпадений эл-та массива с ключом hashmap

Я написал метод, на вход которого приходит путь к папке, где лежат файлы, имена которых будем сравнивать с ключами HashMap, а так же массив имен...

299
Hibernate: использование StaticMetamodel

Hibernate: использование StaticMetamodel

Установка и настройка

281