我有类命名Student,它有String属性date.我有我所有学生的名单,现在我想创建多个ArrayLists按他们分组的dates.
我想使用hashmap:
ArrayList students = getStudents();
Map map<String, ArrayList<Student>> = new HashMap<String, ArrayList<Student>);
for (Student i: students) {
// There must be something
}
Run Code Online (Sandbox Code Playgroud)
如何创建多个学生的ArrayLists,按其属性的String值分组?
使用Java 8 Streams的最简单方法:
Map<String, List<Student>> map =
students.stream()
.collect(Collectors.groupingBy(Student::getDate));
Run Code Online (Sandbox Code Playgroud)
您想要对哪个类进行分组的getDate方法在哪里?StudentStudent
要完成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);
}
Run Code Online (Sandbox Code Playgroud)