मैं निम्नलिखित डेटा संरचना है -जावा धारा - एक नेस्टेड सूची (एक दूसरे क्रम में सूची) द्वारा groupingBy
छात्रों की सूची है कि प्रत्येक राज्य अमेरिका के एक सूचियों का मानना है कि प्रत्येक शहरों की एक सूची है।
public class Student {
private int id;
private String name;
private List<State> states = new ArrayList<>();
}
public class State {
private int id;
private String name;
private List<City> Cities = new ArrayList<>();
}
public class City {
private int id;
private String name;
}
मैं निम्नलिखित प्राप्त करना चाहता हूं।
Map<String, Students> citiesIdsToStudensList;
मैं निम्नलिखित
Map<Integer, List<Integer>> statesToStudentsMap = students.stream()
.flatMap(student -> student.getStates().stream())
.flatMap(state -> state.getCities().stream())
.collect(Collectors.groupingBy(City::getId, Collectors.mapping(x -> x.getId(), Collectors.toList())));
लिखने लेकिन यह मेरे परिणाम मैं चाहता हूँ नहीं मिलता है।
बस यह सुनिश्चित करने के लिए, नेस्टेड फॉर-लूप समाधान के बराबर है: छात्रों के लिए। (प्रत्येक - छात्र -> student.getStates()। प्रत्येक (राज्य -> state.getCities() के लिए। (शहर -> शहरों IdsToStudentsList.computeIfAbsent (city.getId(), के -> नया ऐरेलिस्ट <>())। जोड़ें (छात्र)))? – srborlongan
@ एसरबोरोंगन हां, इस मामले में इसका एक ही परिणाम होगा। – Tunaki