无法解决方法stream()问题

时间:2019-03-31 10:12:07

标签: 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();

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

2 个答案:

答案 0 :(得分:4)

根据documentation

  

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

     
      
  • 通过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();

答案 1 :(得分:0)

您可以使用以下代码:

map.entrySet().stream().forEach(item->{
            System.out.println(item.getKey()+" "+item.getValue());
        });