के साथ एक DISTINCT में धाराओं को एकत्रित करने का सबसे अच्छा तरीका क्या है मान लीजिए कि मेरे पास एकाधिक जावा 8 स्ट्रीम हैं जो प्रत्येक स्ट्रीम को संभावित रूप से Set<AppStory>
में परिवर्तित किया जा सकता है, अब मैं सभी धाराओं को एक DISTINCT स्ट्रीम में एकत्र करने के लिए सर्वोत्तम प्रदर्शन के साथ चाहता हूं आईडी, संपत्ति ("LASTUPDATE")जावा 8
वहाँ क्या करना है के कई तरीके हैं, लेकिन मैं सबसे तेजी से एक चाहते हैं, उदाहरण के लिए के अनुसार क्रमबद्ध:
Set<AppStory> appStr1 =StreamSupport.stream(splititerato1, true).
map(storyId1 -> vertexToStory1(storyId1).collect(toSet());
Set<AppStory> appStr2 =StreamSupport.stream(splititerato2, true).
map(storyId2 -> vertexToStory2(storyId1).collect(toSet());
Set<AppStory> appStr3 =StreamSupport.stream(splititerato3, true).
map(storyId3 -> vertexToStory3(storyId3).collect(toSet());
Set<AppStory> set = new HashSet<>();
set.addAll(appStr1)
set.addAll(appStr2)
set.addAll(appStr3) , and than make sort by "lastUpdate"..
//POJO Object:
public class AppStory implements Comparable<AppStory> {
private String storyId;
private String ........... many other attributes......
public String getStoryId() {
return storyId;
}
@Override
public int compareTo(AppStory o) {
return this.getStoryId().compareTo(o.getStoryId());
}
}
... लेकिन यह पुराना तरीका है।
मैं बना सकते हैं कैसे एक आईडी के आधार पर DISTINCT सबसे अच्छा प्रदर्शन
somethink की तरह साथ धारा अनुसार क्रमबद्ध:
Set<AppStory> finalSet = distinctStream.sort((v1, v2) -> Integer.compare('not my issue').collect(toSet())
किसी भी विचार?
बीआर
विटाली
आपकी 'बराबर विधि' कैसा दिखता है? – Flown
@ ओवरराइड सार्वजनिक बूलियन बराबर (ऑब्जेक्ट ओ) { यदि (यह == ओ) सत्य लौटाता है; अगर (ओ == नल || getClass()! = O.getClass()) झूठी वापसी; ऐपस्टोरी ऐपस्टोरी = (ऐपस्टोरी) ओ; वापसी! (कहानी आईडी! = शून्य?! कहानी Id.equals (appStory.storyId): appStory.storyId! = शून्य); } – VitalyT
मुझे ऐसा लगता है: डीएसडी = स्ट्रीम.ओफ़ (ऐपएसआर 1, एपीएसआरटी 2) .flatMap (स्ट्रीम :: विशिष्ट) .sorted ((s1, s2) -> Long.compare (s1.getLastUpdateTime(), s2 । .getLastUpdateTime())) इकट्ठा (toSet()); –
VitalyT