Hirdetés

Új hozzászólás Aktív témák

  • floatr
    veterán

    Oh, az első kérdést nem olvastam, az már tényleg nem lenne egyszerű. :)

    Ilyesmire gondoltál? :D Persze ha a pánikkeltés a cél, akkor biztosan cifrázható tovább. :D
    String[] arrayOfStrings = { "alma", "körte", "banán", "cseresznye", "áfonya" };
    String longest = Arrays.stream(arrayOfStrings)
    .collect(Collectors.maxBy(Comparator.comparing(String::length)))
    .orElse(null);

    (a kedvedért több sorba törtem :P )

    A reduce nekem valamiért testhezállóbb volt, talán azért is, mert ritkán használok spéci collectorokat. Hirtelen nem is tudnám most rövidebben leírni collectorral, és ezt már én is túlzásnak érzem. Ízlés dolga. A for ciklus a tuti, azt mindenki érti és villámgyors.

    Ebbe most futottam bele teljesen véletlenül ;)

    @Getter
    @AllArgsConstructor
    public class MinMax {
        Optional<String> min, max;
        public static MinMax of(String[] arrayOfString) {
            var length = comparing(String::length);
            return stream(arrayOfString)
                    .collect(
                        teeing(
                            minBy(length),
                            maxBy(length),
                            MinMax::new));
        }
    }

Új hozzászólás Aktív témák