Har*_*ddy 5 java hashmap java-8 java-stream collectors
以下是用于从结果集中收集listofmap并检查特定产品的listofmap的代码,如果产品存在,则获取该映射。请帮我在java8中做
List<Map<String,Object>> lmProducts = new ArrayList<Map<String, Object>>();
Map<String, Object> map = null;
try {
if(resultSet.next()){
System.out.println("PRODUCT\t PRICE\t QUANTITY");
do{
map = new HashMap<String, Object>();
map.put("NAME", resultSet.getString("NAME"));
map.put("PRICE", resultSet.getString("PRICE"));
map.put("QUANTITY", resultSet.getString("QUANTITY"));
System.out.println(resultSet.getString("NAME")+"\t "+resultSet.getInt("PRICE")+"\t "+resultSet.getInt("QUANTITY"));
lmProducts.add(map);
}while (resultSet.next());
}
}catch (SQLException e){
System.out.println("Exception while processing Resultset: "+e.toString());
}
Run Code Online (Sandbox Code Playgroud)
//通过检查关键条件来尝试获取mProduct映射
Map<String, Object> mProductMap = new HashMap<String, Object>();
mProductMap = lmProducts.stream().filter(m -> m.get("NAME").toString().equalsIgnoreCase(sProductName)).collect(to)
Run Code Online (Sandbox Code Playgroud)
您可以collect使用 合并地图中的所有条目 Collectors.toMap。
Map<String, Object> mProductMap = lmProducts.stream()
.flatMap(a -> a.entrySet().stream()) // stream of entries of all maps
// entries with specific key and value combination
.filter(m -> m.getKey().equals("NAME") && m.getValue().toString().equalsIgnoreCase(sProductName))
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
Run Code Online (Sandbox Code Playgroud)