我有一个名为 Student
的类,它有 String 属性 date
。我有我所有学生的列表,现在我想创建多个 ArrayLists
,它们按他们的 date
分组。
我想使用 HashMap :
ArrayList students = getStudents();
Map map<String, ArrayList<Student>> = new HashMap<String, ArrayList<Student>);
for (Student i: students) {
// There must be something
}
我如何创建多个学生数组列表,这些数组列表按其属性的字符串值分组?
最佳答案
使用 Java 8 Streams 的最简单方法:
Map<String, List<Student>> map =
students.stream()
.collect(Collectors.groupingBy(Student::getDate));
getDate
是 Student
类的方法,您希望通过它对 Student
进行分组。
要完成 Java 8 之前代码的答案:
Map<String, List<Student>> map = new HashMap<>();
for (Student s : students) {
List<Student> list = map.get(s.getDate());
if (list == null) {
list = new ArrayList<Student>();
map.put (s.getDate(), list);
}
list.add (s);
}
关于java - 使用 Hashmap 创建多个 Array 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29715645/