我的hashmap中有一个名为"mastervalue"的对象值.mastervalue包含ques_id作为键,数组包含得分和答案作为值.如何获取数组的值(得分和答案)并返回List.
String maprule = "department == '2' && topic == '1'";
mastervalue = (Map<String, List<String>>) map_master.get(maprule);
System.out.println(mastervalue);
Run Code Online (Sandbox Code Playgroud)
mastervalue print out:{10359 = [4,1],10365 = [1,1],10364 = [1,1],10363 = [4,1],10362 = [3,1],10369 = [1, 1],10368 = [5,1]}
Rog*_*gue 18
好的:
public <T> List<T> getValues(Map<?, T> map) {
return new ArrayList<>(map.values());
}
Run Code Online (Sandbox Code Playgroud)
内联:
List<List<String>> list = new ArrayList<>(map_master.values());
Run Code Online (Sandbox Code Playgroud)
或者使用方法:
List<List<String>> list = getValues(map_master);
Run Code Online (Sandbox Code Playgroud)
或者,如果要将所有列表的所有值都放在一个中,只需迭代:
List<String> total = new ArrayList<>();
for (List<String> lis : map_master.values()) {
total.addAll(lis);
}
Run Code Online (Sandbox Code Playgroud)
使用Java 8流:
List<String> total = map_master.values().stream()
.flatMap(Collection::stream)
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)