无法解决方法流()问题

sad*_*tor 3 java java-stream

我目前正在学习 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();
Run Code Online (Sandbox Code Playgroud)

它让我java cannot resolve method stream() 在 Java 11 中使用 Inttelij 和编码,老实说我不知道​​发生了什么。

Rus*_*lan 5

根据文档

可以通过多种方式获得流。一些例子包括:

  • 通过 stream() 和 parallelStream() 方法从集合中;
  • 从一个数组通过 Arrays.stream(Object[]);
  • 来自流类上的静态工厂方法,例如 Stream.of(Object[])、IntStream.range(int, int) 或 Stream.iterate(Object, UnaryOperator);
  • 文件的行可以从 BufferedReader.lines() 获得;
  • 文件路径流可以从 Files 中的方法获得;
  • 随机数流可以从 Random.ints() 获得;
  • JDK 中的许多其他流承载方法,包括 BitSet.stream()、Pattern.splitAsStream(java.lang.CharSequence) 和 JarFile.stream()。

由于Map没有实现Collection接口,它不适合任何这些方式和手段没有stream()方法。但是您可以将流用于:

map.keySet().stream();
map.values().stream();
map.entrySet().stream();
Run Code Online (Sandbox Code Playgroud)