Java lambda expression: incompatible type: error return type in lambda expression

I have the following worklists, each of which is a list of profits and difficulties:

List<List<Integer>> jobs = new ArrayList<>();
for (int i = 0; i < difficulty.length; i++) {
    List<Integer> job = new ArrayList<Integer>();
    job.add(profit[i]);
    job.add(difficulty[i]);
    jobs.add(job);
}

Now I want to sort the jobs according to their profit (the first element of each job), as follows:

jobs.sort((j1,j2) -> j1.get(0) > j2.get(0));

However, the following errors were obtained:

error: incompatible types: bad return type in lambda expression

What did I do wrong and how should I solve this problem? thank you!

Solution

Your comparator is invalid because it returns a Boolean value and the expected return type is an int

A simple solution is:

jobs.sort(Comparator.comparing(e -> e.get(0)));

or

jobs.sort((j1,j2) -> Integer.compare(j1.get(0),j2.get(0)));
The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
分享
二维码
< <上一篇
下一篇>>