我List<Map<String, String>>列表中的每个项目都是一个地图,例如
companyName - IBM
firstName - James
country - USA
...
Run Code Online (Sandbox Code Playgroud)
我想创建一个Map<String, List<String>>将companyName映射到firstName列表的地方,例如
IBM -> James, Mark
ATT -> Henry, Robert..
private Map<String,List<String>> groupByCompanyName(List<Map<String, String>> list) {
return list.stream().collect(Collectors.groupingBy(item->item.get("companyName")));
}
Run Code Online (Sandbox Code Playgroud)
但这将创建Map<String, List<Map<String, String>>(将comanyName映射到地图列表)
如何创建Map<String, List<String>>?
我有一张地图Map<String, List<Double>,我想在所有列表中找到最大值(或最小值).该函数应返回最大(或最小)值和属于该值的键.
签名可能是
public static Pair<String,Double> getKeyValue(Map<String, List<Double>> map, BinaryOperator<Double> function)
获取地图和功能Double::max或Double::min
如何使用java 8,stream api有效地(并且精美地)实现它?