dor*_*ado 0 java collect java-8 java-stream
我有一个地图列表,其中每个地图只有one key-value pair一个。我需要将其转换为仅键列表。我正在尝试使用流,如下所示:
List<Map<Long, String>> lst = // some data
List<Long> successList = lst.stream().map(ele -> ele.keySet().toArray()[0]).collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
但是我最终收到以下错误:
java: incompatible types: inference variable T has incompatible bounds
equality constraints: java.lang.Long
lower bounds: java.lang.Object
Run Code Online (Sandbox Code Playgroud)
如何解决此问题,或者有什么更好的方法?
用法Steram#flatMap如下:
lst.stream()
.flatMap(e->e.entrySet().stream())
.map(e->e.getKey())
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
编辑:( 根据评论)更优雅的方法是Map#keySet代替 Map#entrySet。
lst.stream()
.flatMap(e -> e.keySet().stream())
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
You need Just :
List<Long> successList = lst.stream()
.flatMap(e -> e.keySet().stream())
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
169 次 |
| 最近记录: |