我目前正在学习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中进行编码,老实说我不知道发生了什么。
答案 0 :(得分:4)
可以通过多种方式获得流。一些示例包括:
- 通过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());
});