maxBy minBy


import java.util.stream.Stream;

public class Artist {

    private final String name;
    private final String origin;
    private Stream<Artist> members;

    public Artist(String name, String origin) {
        this.name = name;
        this.origin = origin;
        this.members = null;
    }

    public Artist(String name, String origin,Stream<Artist> members) {
        this.name = name;
        this.origin = origin;
        this.members = members;
    }

    public String getName() {
        return name;
    }

    public String getOrigin() {
        return origin;
    }

    public Stream<Artist> getMembers() {
        return members;
    }

    @Override
    public String toString() {
        return name;
    }
}

import java.util.Arrays;
import java.util.List;
import java.util.Optional;
import java.util.function.Function;
import java.util.stream.Stream;

import static java.util.Comparator.comparing;
import static java.util.stream.Collectors.maxBy;

public class MaxByDemo {
    public static void main(String[] args) {
        List<Artist> artists = Arrays.asList(
                new Artist("Fossils", "Kolkata", Stream.of(new Artist("Rupam Islam", "Kolkata"), new Artist("Deep", "Kolkata"), new Artist("Allan", "Kolkata"), new Artist("Chandramouli", "Kolkata"), new Artist("Tanmoy", "Kolkata"))),
                new Artist("Linkin Park", "California", Stream.of(new Artist("Chester Bennington", "California"), new Artist("Dave Farrell", "California"), new Artist("Mike Shinoda", "California"), new Artist("Rob Bourdon", "California"), new Artist("Brad Delson", "California"))),
                new Artist("Cactus", "Kolkata", Stream.of(new Artist("Sidhartha Sankar", "Kolkata"), new Artist("Dibyendu Mukherjee", "Kolkata"), new Artist("Ritaprabha", "Kolkata"), new Artist("Sudipto", "Kolkata"), new Artist("Mainak", "Kolkata"))),
                new Artist("Backstreet Boys", "Florida", Stream.of(new Artist("A. J. McLean", "Florida"), new Artist("Howie D.", "Florida"), new Artist("Nick Carter", "Florida"), new Artist("Kevin Richardson", "Florida"), new Artist("Brian Littrell", "Florida"))),
                new Artist("Prohori", "Kolkata", Stream.of(new Artist("Pritam", "Kolkata"))));
//        int totalMember = 0;
//        for (Artist artist : artists) {
//            Stream<Artist> members = artist.getMembers();
//            totalMember += members.count();
//        }
//        System.out.println("totalMember: " + totalMember);

        int totalMember2 = artists.stream()
                .filter(d -> d.getOrigin().equals("Kolkata"))
                .flatMap(e -> e.getMembers())
                .map(f->1).reduce(0, (a, b) -> a + b);
        System.out.println("totalMember2: " + totalMember2);

//        Long totalMember3 = artists.stream()
//                .filter(d -> d.getOrigin().equals("Kolkata"))
//                .flatMap(e -> e.getMembers()).count();
//        System.out.println("totalMember3: " + totalMember3);
    }

    public Optional<Artist> biggestGroup(Stream<Artist> artists) {
        Function<Artist,Long> getCount=artist -> artist.getMembers().count();
        return artists.collect(maxBy(comparing(getCount)));
    }

}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 乳白色的月光下十點(diǎn)鐘上床睡覺,伴著雞鳴狗吠聲早晨六點(diǎn)半醒來,毫無意識(shí)中沉睡了整整八個(gè)半小時(shí),溫暖的被窩的確讓人舒服...
    夢(mèng)想2050閱讀 601評(píng)論 7 23
  • 避免【隧道視野】 想象自己在隧道里開車,在進(jìn)入和離開隧道的那個(gè)時(shí)刻,你才會(huì)有強(qiáng)烈的對(duì)比感受,自己的視野開闊-變窄-...
    王子Echo閱讀 321評(píng)論 1 4
  • 張羽和女朋友孫晨認(rèn)識(shí)五年了,在他的印象當(dāng)中,一次都沒有帶女朋友出去玩過。 這兩天剛好是清明節(jié),公司竟然大發(fā)慈悲放了...
    木頭windy閱讀 513評(píng)論 0 12
  • 比大海廣闊的是天空,比天空更廣闊的是人的胸懷。 而我們想要有廣闊的胸懷,首先要提升的是我們的人生格局。今天我們分享...
    擺渡精靈閱讀 453評(píng)論 0 2
  • 早晨驅(qū)車去單位,看著路兩邊往后退去的景色,想起了我的老校長(zhǎng)。 他是我參加工作后的第一位校長(zhǎng),對(duì)我的人生影響很大的人...
    石川河女神閱讀 149評(píng)論 0 0

友情鏈接更多精彩內(nèi)容