है, मैं पीओजेओ की सूची चलाने के लिए जावा स्ट्रीम का उपयोग करना चाहता हूं, जैसे सूची List<A>
नीचे सूचीबद्ध करें, और इसे मानचित्र Map<String, Set<String>>
में बदलें।जावा स्ट्रीम संग्राहक.टैप मूल्य एक सेट
उदाहरण के लिए, वर्ग एक है:
final List<A> as = new ArrayList<>();
// the list as is populated ...
// works if there are no duplicates for name
final Map<String, String> m = as.stream().collect(Collectors.toMap(x -> x.name, x -> x.property));
हालांकि, क्योंकि वहाँ एक ही साथ कई POJOs हो सकता है:
class A {
public String name;
public String property;
}
मुझे लगता है कि नीचे कोड मानचित्र Map<String, String>
में मूल्यों एकत्र करता है लिखा था name
, मुझे लगता है कि मानचित्र का मूल्य Set
हो। सभी property
उसी कुंजी के लिए स्ट्रिंग्स name
एक ही सेट में जाना चाहिए।
यह कैसे किया जा सकता है?
// how do i create a stream such that all properties of the same name get into a set under the key name
final Map<String, Set<String>> m = ???
छोटे सुधार, मुझे लगता है कि यह स्थिर java.util.stream.Collectors आयात करना चाहिए। *; – tkja
वूप्स, सही: डी – Nevay
आपको एक लैम्ब्डा पैरामीटर के चारों ओर कोष्ठक की आवश्यकता नहीं है। – shmosel