Не удалось решить проблему метода stream () - PullRequest
1 голос
/ 31 марта 2019

В настоящее время я изучаю потоки в Java, но когда я пытаюсь написать простой код, подобный этому

Map<String, Integer> map = new TreeMap<>();
       map.put("Tom", 5);
       map.put("Andrew", 6);
       map.put("Kim", 3);
       map.put("Milo", 2);

       map.stream();

это дает мне java cannot resolve method stream() Я использую Inttelij и кодирую в Java 11, и я, честно говоря, не знаю, что происходит.

Ответы [ 2 ]

4 голосов
/ 31 марта 2019

Согласно документации :

Потоки могут быть получены несколькими способами.Вот некоторые примеры:

  • Из коллекции с помощью методов stream () и parallelStream ();
  • Из массива через Arrays.stream (Object []);
  • Из статических методов фабрики в потоковых классах, таких как Stream.of (Object []), IntStream.range (int, int) или Stream.iterate (Object, UnaryOperator);
  • Строкифайл может быть получен из BufferedReader.lines ();
  • Потоки путей к файлам могут быть получены из методов в Файлах;
  • Потоки случайных чисел могут быть получены из Random.ints ();
  • Множество других потоковых методов в JDK, включая BitSet.stream (), Pattern.splitAsStream (java.lang.CharSequence) и JarFile.stream ().

Поскольку Map не реализует интерфейс Collection, он не подходит ни для одного из этих способов, а значит, не имеет метода stream().Но вы можете использовать поток с:

map.keySet().stream();
map.values().stream();
map.entrySet().stream();
0 голосов
/ 31 марта 2019

Вы можете использовать ниже код:

map.entrySet().stream().forEach(item->{
            System.out.println(item.getKey()+" "+item.getValue());
        });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...