2017-01-16 2 views
3

Was ist die Java Stream-API-Alternative zur LambdaJ-Indexierung? Nehmen wir an, ich habe Code wie diesenJava-Stream-Alternative zu LambdaJ-Index

List<Product> products = ... 
Map<Month, Product> productsOnMonths = Lambda.index(products, Lambda.on(Product.class).getMonth()); 

Wo ich weiß, dass jedes Produkt einzigartige Monat Attribut hat.

Antwort

3
products.stream().collect(Collectors.toMap(Product::getMonth, s -> s)); 

Der Unterschied hier ist, dass Collectors.toMap ein drittes Argument nehmen kann, der sagt, wie zwei Einträge verschmelzen, wenn sie gleich sind; Ich glaube nicht, dass Lambdaj bietet

+0

Sehr elegant. Schließlich habe ich eine Version mit Identity-Funktion verwendet. 'products.stream(). collect (Collectors.toMap (Produkt :: getMonth, Function.identity()));' – Behnil

Verwandte Themen