मैं प्रत्येक प्रविष्टि द्वारा समूह को कैसे सीमित कर सकता हूं?सीमा समूह में जावा 8
उदाहरण के लिए (: stream groupBy इस उदाहरण के आधार पर):
studentClasses.add(new StudentClass("Kumar", 101, "Intro to Web"));
studentClasses.add(new StudentClass("White", 102, "Advanced Java"));
studentClasses.add(new StudentClass("Kumar", 101, "Intro to Cobol"));
studentClasses.add(new StudentClass("White", 101, "Intro to Web"));
studentClasses.add(new StudentClass("White", 102, "Advanced Web"));
studentClasses.add(new StudentClass("Sargent", 106, "Advanced Web"));
studentClasses.add(new StudentClass("Sargent", 103, "Advanced Web"));
studentClasses.add(new StudentClass("Sargent", 104, "Advanced Web"));
studentClasses.add(new StudentClass("Sargent", 105, "Advanced Web"));
इस विधि सरल समूह वापसी:
Map<String, List<StudentClass>> groupByTeachers = studentClasses
.stream().collect(
Collectors.groupingBy(StudentClass::getTeacher));
क्या होगा यदि मैं वापस आ संग्रह सीमित करने के लिए करना चाहते हैं? मान लीजिए कि मैं प्रत्येक शिक्षक के लिए केवल प्रथम एन कक्षा चाहता हूं। यह कैसे किया जा सकता है?
क्या आप पहली बार ?, मतलब है आपको सबसे कम वर्ग संख्या, ASCIIBetically न्यूनतम नाम, या किसी यादृच्छिक चयन के साथ कक्षाओं का मतलब क्या एन कक्षाओं के। नोट: कक्षाओं का सेट अनियंत्रित हो सकता है। –
@ पीटर Lawrey आप सही हैं, मैंने इसका उल्लेख नहीं किया है, मेरे लिए आदेश अप्रासंगिक है, लेकिन अगर हम अधिक गहन और सामान्य समाधान चाहते हैं - बीमार खुश रहें यदि आप एक सॉर्टिंग उदाहरण जोड़ते हैं (फ़ील्ड में से एक) – yossico