TX *_*X T 5 java-8 java-stream
有人会帮助我通过流和过滤获取地图值的数组吗?
public class TheMap extends HashMap<String, String> {
public TheMap(String name, String title) {
super.put("name", name);
super.put("title", title);
}
public static void main(final String[] args) {
Map<Long, Map<String, String>>map = new HashMap<>();
map.put(0L, null);
map.put(1L, new TheMap("jane", "engineer"));
map.put(2L, new TheMap("john", "engineer"));
map.put(3L, new TheMap(null, "manager"));
map.put(4L, new TheMap("who", null));
map.put(5L, new TheMap(null, null));
}
}
Run Code Online (Sandbox Code Playgroud)
我正在寻找的结果是ArrayList<TheMap>只有这两个条目:
TheMap("jane", "engineer")
TheMap("john", "engineer")
Run Code Online (Sandbox Code Playgroud)
基本上,TheMap使用none-nullname 和 进行检索title。
如果您需要 arrayList TheMap,请尝试以下方式:
ArrayList<TheMap> as = map.values()
.stream()
.filter(v -> v != null && v.get("name") != null && v.get("title") != null)
.map(m -> (TheMap)m)
.collect(Collectors.toCollection(ArrayList::new)));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2482 次 |
| 最近记录: |