Вот нечто подобное, над которым я работаю над своим проектом.Классы разные по очевидной причине.Скажем так, у меня есть класс
public class Division {
String className;
Map<String, Student> studentMap;
// getters and setters
}
и
public class Student {
String fName;
String lName;
String id;
// getters and setters
}
, и у меня есть экземпляры для этих классов, как показано ниже:
Student s1= new Student("Lisa", "xyz", "12");
Student s2= new Student("John", "klm", "13");
Student s3= new Student("Lisa", "xyz", "14");
Division d1= new Division();
Division d2= new Division();
Map<String, Student> studentMap1= new HashMap<>();
studentMap1.put("key1", s1);
studentMap1.put("key2", s2);
Map<String, Student> studentMap2= new HashMap<>();
studentMap2.put("key3", s3);
d1.setStudentMap(studentMap1);
d2.setStudentMap(studentMap2);
List<Division> dList= Arrays.asList(d1, d2);
Здесь обратите внимание, что ключи, которыемы используем в HashMap уникальны по всей БД.так что я могу написать что-то подобное в Java 7, чтобы получить все studentMap
Получить всех студентов Map
Map<String, Student> allstudentsMap= new HashMap<>();
for(Division d: dList) {
for(String key:d.getStudentMap().keySet()) {
allstudentsMap.put(key, d.getStudentMap().get(key));
}
}
Мне нужно такжеполучить список ключей для некоторого условия фильтра.например, получить список ключей для студентов с именем Лиза .Я могу получить список, используя приведенный выше HashMap, как показано ниже:
List<String> filterList= new ArrayList<>();
Student s;
for(String key:allstudentsMap.keySet()) {
s= allstudentsMap.get(key);
if(s.getfName().equalsIgnoreCase("Lisa")) {
filterList.add(key);
}
}
Мне нужна помощь, чтобы сделать то же самое, используя потоки Java 8.1. Получить карту всех студентов. 2. Получить список всех ключей для некоторого условия фильтра.