今回は limit() メソッドを使ってみます。
MyLambdaSample プロジェクトの MyLambdaSample.java に MyBeatMember を FightingPower 詳細昇順ソート 最初から3人まで とういう機能を実装します。
limit() メソッドを使うと簡単にできてしまいます。( 203 行目 )
| jp\yucchi\mylambdasample\MyLambdaSample.java |
// MyBeatMember を FightingPower 詳細照準ソート 最初から3人まで
System.out.println("<-- MyBeatMember を FightingPower 詳細昇順ソート 最初から3人まで -->");
member.parallelStream().filter(m -> m.getGender() == MyTeam.Sex.FEMALE
&& m.getAge() >= 16
&& m.getAge() <= 29
&& m.getBreast() >= 76)
.sorted((o1, o2) -> o1.getFightingPower() - o2.getFightingPower())
.limit(3)
.collect(Collectors.toList())
.forEach(e -> {
System.out.println(e.getName() + ", " + e.getAge() + "歳, "
+ "Gender : " + e.getGender() + ", " + "Breast Size : "
+ e.getBreast() + ", FightingPower : " + e.getFightingPower());
});
limit() メソッドの引数に制限数を渡すだけですね。
今回は3人ということなので 3 を渡しています。
実行結果は次のように期待通りの結果となりました。
<– MyBeatMember を FightingPower 詳細昇順ソート 最初から3人まで –>
武井 咲, 19歳, Gender : FEMALE, Breast Size : 76, FightingPower : 66
剛力 彩芽, 20歳, Gender : FEMALE, Breast Size : 77, FightingPower : 75
堀北 真希, 24歳, Gender : FEMALE, Breast Size : 78, FightingPower : 76
便利に使えそうですね。(^_^)