查询数据库时,我得到以下示例结果:
[{ name : name1, rollno: rollno1 }, { name : name2, rollno: rollno2 } ]
我想使用Java 8流将此哈希表列表转换为单个哈希表。我尝试使用Collectors.toMap(),但不确定如何将rollNo称为键,将hashmap称为toMap方法中的值。
预期输出:
{ rollno1 : { name : name1, rollno: rollno1 } , rollno2 : { name : name2, rollno: rollno2 } }
有什么办法吗?
将不胜感激。谢谢
这是完整的示例,该如何做
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<HashMap<String, String>> input = new ArrayList<>();
HashMap<String, String> subinput1 = new HashMap<>();
subinput1.put("name", "name1");
subinput1.put("rollno", "rollno1");
input.add(subinput1);
HashMap<String, String> subinput2 = new HashMap<>();
subinput2.put("name", "name2");
subinput2.put("rollno", "rollno2");
input.add(subinput2);
HashMap<String, HashMap<String, String>> result = (HashMap<String, HashMap<String, String>>) input.stream()
.collect(Collectors.toMap(v -> (String) v.get("rollno"), e -> e));
System.out.println(result);
}
}
它遍历HashMap的集合,获取应将其存储在结果HashMap中的键,然后创建一个Maps Map,其中键是输入映射中的“ rollno”,而值是输入映射本身。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句