मैं एक विधि लिख रहा हूं जो Map<Term, List<Integer>>
के Map
इनपुट इनपुट लेता है जहां Term
here परिभाषित किया गया है।जावा 8 - मानचित्र मूल्य के अंदर फ़िल्टर सूची
विधि:
Map
की चाबियाँ पर
- जाओ और एक
Term
विशेषता का उपयोग कर उन्हें फ़िल्टर। - शेष चाबियों का प्रत्येक के लिए, इसी सूची के आकार वापसी
totalSum
यह मिलता है, यह 5 (min(List.size(), 5)
) करने के लिए टोपी और एक वैश्विक वर के लिए उत्पादन को जोड़ने (जैसे कि, totalSum
)
inputMap
.entrySet()
.stream()
.filter(entry -> entry.getKey().field().equals(fieldName)) // Keep only terms with fieldName
.forEach(entry -> entry.getValue()
.map(size -> Math.min(entry.getValue().size(), 5))) // These 2 lines do not work
.sum();
मैं इनपुट के रूप में सूचियों की एक धारा, उत्पादन उन सूचियों से प्रत्येक के लिए एक पूर्णांक लेने के लिए और सभी outputs की राशि वापस करने में असमर्थ हूँ: मैं अब तक क्या लिखा है।
मैं स्पष्ट रूप से छोरों के लिए उपयोग कर लिख सकते हैं, लेकिन मैं जावा 8 जानने की कोशिश कर रहा हूँ और अगर इस समस्या को इसे प्रयोग व्याख्या करने योग्य है उत्सुक था।
'मानचित्र' इंटरफ़ेस में अब अपनी 'forEach()' विधि है जो 'BiConsumer' उदाहरण लेती है। इसका उपयोग आपके कोड को सरल बनाने के लिए किया जा सकता है। –