द्वारा फ़िल्टर संग्रह मैं एक Set<String> usernames
और List<Player> players
जावा 8 लैम्ब्डा - एक और संग्रह
मैं उन खिलाड़ियों है कि समूह में नहीं हैं को फ़िल्टर करना चाहते हैं।
मैं कैसे वेनिला पूर्व जावा 8
List<Player> distinctPlayers = new ArrayList<Player>();
for(Player p : players) {
if(!usernames.contains(p.getUsername()) distinctPlayers.add(p);
}
मैं एक लैम्ब्डा अभिव्यक्ति के साथ इस सरल कोड लिखने की कोशिश कर रहा हूँ में यह करने के लिए पता है, लेकिन मैं एक फिल्टर में काम करने के usernames.contains()
पाने के लिए संघर्ष कर रहा हूँ
players.stream().filter(!usernames.contains(p -> p.getUsername()))
.collect(Collectors.toList());
यह संकलित नहीं करता है। "नहीं किया जा सकता resove विधि getUsername()"
बुलॉक्स! मुझे पता था कि मुझे कुछ आसान याद आया था। धन्यवाद! #feelsAshamed –
अच्छा! धन्यवाद! ~ –
नमस्ते, मैं एक्स्टैक्ट परिदृश्य का उपयोग कर रहा हूं, लेकिन यह संकलन त्रुटि दिखाता है "एक संलग्न क्षेत्र में परिभाषित" स्थानीय चर "उपयोगकर्ता नाम अंतिम या प्रभावी रूप से अंतिम होना चाहिए" –