从Hashmap的所有值中获取所有嵌套项
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从Hashmap的所有值中获取所有嵌套项相关的知识,希望对你有一定的参考价值。
我使用HashMap将键作为字符串,值为ArrayList
:
HashMap<String, ArrayList<Student>> students;
如何取回所有Student
对象,即所有ArrayList
对象的所有元素?
答案
如果你想要所有的Student
s,你可以Stream
超过values()
的Map
并用Stream
压扁flatMap
:
List<Students> studentList = students.values() // Collection<ArrayList<Students>>
.stream() // Stream<ArrayList<Students>>
.flatMap(List::stream) // Stream<Students>
.collect(Collectors.toList());
如果你不能使用Java 8,你将不得不迭代values()
的Map
并将它们全部添加到List
:
List<Students> studentList = new ArrayList<>();
for (ArrayList<Students> list : students.values())
studentList.addAll(list);
另一答案
ArrayList<Students> studentList = students.get("stringKey");
如果你想获得所有学生名单。
声明一个单独的数组列表并使用addAll()
方法。
for (String key : studentList .keySet()) {
finalList.addAll(studentList.get(key));
}
另一答案
您可以使用values()
函数将学生地图中的所有ArrayLists
转换为单个Collection
对象。然后我们可以通过以下方法将集合转换为ArrayList。
Collection<ArrayList<Students>> studentCollection = students.values();
List<Students> studentList = new ArrayList<Students>(studentCollection);
以上是关于从Hashmap的所有值中获取所有嵌套项的主要内容,如果未能解决你的问题,请参考以下文章
从嵌套 recyclerview 的所有输入框中获取所有编辑文本正在获取最新的 recyclerview 项目而不是所有数据