मेरे पास एक स्थिर विधि String Converter.convert(String, Integer)
है।दो पैरा प्राप्त करने वाले फ़ंक्शन का उपयोग करके किसी मानचित्र की कुंजी + मान को नए मान में बदलने के लिए जावा 8 स्ट्रीम का उपयोग कैसे करें?
मेरे पास एक नक्शा भी है: Map<String, Integer> map
।
मैं मानचित्र पर दौड़ना चाहता हूं और कनवर्ट विधि का उपयोग कर प्रत्येक प्रविष्टि को एक स्ट्रिंग में परिवर्तित करना चाहता हूं और प्रत्येक परिवर्तित स्ट्रिंग का उपयोग जारी रखना चाहता हूं।
map.entrySet().stream().map(e -> Converter.convert(e.getKey(), e.getValue()))....;
इसमें अधिक सहज ज्ञान युक्त करने के लिए एक रास्ता है:
मैं इसे इस तरह से कर सकते हैं? कुछ पसंद है?
map.stream(Converter::convert)...
???
या
map.stream((k, v) -> Converter.convert(k, v)))...
???
नहीं वास्तव में: यह एक विशेष वर्ग
EntryStream<K, V>
जोStream<Entry<K, V>>
लागू करता है औरmapKeyValue
जो एक आप की जरूरत है सहित अतिरिक्त काम तरीके प्रदान होता है। आप एक विधि को परिभाषित कर सकते हैं जो 'एंट्री' लेता है और आपकी 'कन्वर्ट' विधि को कॉल करता है। 'Map.forEach' 'BiConsumer' लेता है, लेकिन यह कुछ भी वापस नहीं लौटाता है, इसलिए बहुत उपयोगी नहीं है। –मैं चाहता था कि वहां था! –