मैं forEach()
मेमने की अभिव्यक्ति की संभावनाओं की खोज करने के लिए लैंबडा -मैथोड्स के लिए प्रत्येक लूप को बदलने की कोशिश कर रहा हूं । निम्नलिखित संभव प्रतीत होता है:
ArrayList<Player> playersOfTeam = new ArrayList<Player>();
for (Player player : players) {
if (player.getTeam().equals(teamName)) {
playersOfTeam.add(player);
}
}
लंबोदर के साथ forEach()
players.forEach(player->{if (player.getTeam().equals(teamName)) {playersOfTeam.add(player);}});
लेकिन अगले एक काम नहीं करता है:
for (Player player : players) {
if (player.getName().contains(name)) {
return player;
}
}
लंबोदर के साथ
players.forEach(player->{if (player.getName().contains(name)) {return player;}});
क्या अंतिम पंक्ति के सिंटैक्स में कुछ गड़बड़ है या forEach()
विधि से वापस लौटना असंभव है ?
return
एक स्टेटमेंट के भीतर लैंबडा खुद लैंबडा से लौटता है, जिसे लैम्ब्डा नहीं कहा जाता है। इयान रॉबर्ट्स के उत्तरfindFirst
में दिखाए गए अनुसार एक धारा को जल्दी ("शॉर्ट-सर्क्युटिंग") उपयोग करें ।