How to transform this lambda code to method reference in Java?

Viewed 102

I have a method reference question in Java.

I want to transform this lambda code:

Collections.sort(trends, (map1, map2) -> (int) ((long) map2.get("pageview") - (long) map1.get("pageview")));

How to use Integer::compareTo?

2 Answers
Collections.sort(trends,
    (map1, map2) -> {
        Integer i1 = ((Long) map1.get("pageview")).intValue();
        Integer i2 = ((Long) map2.get("pageview")).intValue();
        return i2.copmareTo(i1);
    }
);

In this way, you can conver your long values to Integers and compare them.

In order to user method reference "Integer::compareTo" try this:

Collections.sort(trends, Comparator.comparing( map -> -map.get("pageview").intValue(),
                Integer::compareTo));
Related