我想使用流API过滤包含哈希映射的数组列表。
ArrayList<HashMap<String,Object>> resultslist = new ArrayList<HashMap<String,Object>>();
ResultSet rs = pstmt.executeQuery();
while (rs.next()) {
HashMap<String,Object> returndatas = new HashMap<String,Object>();
int colcnt = rs.getMetaData().getcolumnCount();
for (int i = 1; i <= colcnt; i++) {
if (rs.getObject(i) instanceof BigInteger) {
returndatas.put(rs.getMetaData().getcolumnName(i),rs.getInt(i));
} else {
returndatas.put(rs.getMetaData().getcolumnName(i),rs.getObject(i));
}
}
resultslist.add(returndatas);
}
以上方法给出了resultslist
。现在,我想按某种条件过滤此列表,并收集一个新的哈希图数组列表。
例如,我要选择具有“ null”值和字符串具有“ parent_item_id”的哈希映射。
我尝试了以下方法。
ArrayList<HashMap<String,Object>> reducedList = resultslist .stream()
.filter((HashMap<String,Object> hasmap) -> hasmap.entryset().stream().anyMatch(e -> e.getKey().equals("parent_item_id") && e.getvalue().equals(0)))
.collect(Collectors.toList());
终于可以了
我用了这个。谢谢大家
List<HashMap<String,Object>> reducedList = resultslist.stream()
.filter(hashmap ->((hashmap.get("parent_item_id")) == null ))
.collect(Collectors.toList());