【发布时间】:2016-07-21 22:41:52
【问题描述】:
我有一个 HashMap 的arrayList
我如何使用 java 8 和 .map .filter 技术来获取 HashMap 中某个值的字符串的 ArrayList
例如
字符串数据等于
[{
"schema": [{
"name": "#VALUE",
"dataType": {},
"nullable": true,
"metadata": {
"map": {}
}
}, {
"name": "@ref",
"dataType": {},
"nullable": true,
"metadata": {
"map": {}
}
}],
"values": [null, 442256]
}, {
"schema": [{
"name": "#VALUE",
"dataType": {},
"nullable": true,
"metadata": {
"map": {}
}
}, {
"name": "@ref",
"dataType": {},
"nullable": true,
"metadata": {
"map": {}
}
}],
"values": [null, 4192463331]
}, {
"schema": [{
"name": "#VALUE",
"dataType": {},
"nullable": true,
"metadata": {
"map": {}
}
}, {
"name": "@ref",
"dataType": {},
"nullable": true,
"metadata": {
"map": {}
}
}],
"values": [null, 34817060]
}, {
"schema": [{
"name": "#VALUE",
"dataType": {},
"nullable": true,
"metadata": {
"map": {}
}
}, {
"name": "@ref",
"dataType": {},
"nullable": true,
"metadata": {
"map": {}
}
}],
"values": [null, 291594905]
}]
结果
["442256","4192463331","34817060","291594905"]
我的这部分代码但不起作用
Stream.of(mapper.readValue(mapper.writeValueAsString(data),ArrayList.class))
.filter(c -> c instanceof ArrayList<?>)
.map(ArrayList.class::cast)
.map(c ->
c.forEach(f -> { Stream.of(mapper.readValue(mapper.writeValueAsString(f),HashMap.class))
.filter(f -> f instanceof HashMap<?,?>)
.map(HashMap.class::cast)
...
}
)
)
.forEach(System.out::println);
有什么想法吗?
亲切
【问题讨论】:
-
您没有提供MCVE
-
请发布完整的可运行代码。
-
首先,创建一个
List<Map<String, List<Object>>>
标签: java arraylist hashmap java-8 java-stream