6 Kasım 2018 Salı

BinaryOperator Arayüzü

Giriş
BinaryFunction arayüzünden kalıtır.

constructor - lambda
Örnek
Şöyle yaparız.
// result = operation.apply(a, b);
int result = ((BinaryOperator<Integer>) ((a, b) -> a * b)).apply(2, 2);
apply metodu
Örnek
Şöyle yaparız.
BinaryOperator<Integer> otherMethod = ...;
int a = 6;
int b = 7;

int c = otherMethod.apply(a,b);
maxBy metodu
Elimizde listInfo listesi olsun. Bu listeyi önce bir tarihten küçüklüğe göre sırayalıp aralarından en büyük değeri seçmek için şöyle yaparız.
List<Info> listResult = Stream.concat(
    listInfo.stream()
        .filter(info -> info.getDate().getTime() < date.getTime())
        .collect(Collectors.toMap(Info::getGroupId, Function.identity(),
            BinaryOperator.maxBy(Comparator.comparing(Info::getDate))))
        .values().stream(),
    listInfo.stream()
        .filter(info -> info.getDate().getTime() >= date.getTime())
    )
    .collect(Collectors.toList());

Hiç yorum yok:

Yorum Gönder