我有以下工作列表,每个元素都是一个包含利润和难度的列表:
List> jobs = new ArrayList<>();
for (int i = 0; i < difficulty.length; i++) {
List job = new ArrayList();
job.add(profit[i]);
job.add(difficulty[i]);
jobs.add(job);
}
现在我想根据他们的利润(每个工作的第一个元素)对工作进行排序,如下所示:
jobs.sort((j1, j2) -> j1.get(0) > j2.get(0));
但得到以下错误:
error: incompatible types: bad return type in lambda expression
我做错了什么,我该如何解决这个问题?谢谢!
您的
comparator无效,因为它返回一个布尔值,而预期的返回类型是一个int.
一个简单的解决方案是:
jobs.sort(Comparator.comparing(e -> e.get(0)));
要么:
jobs.sort((j1, j2) -> Integer.compare(j1.get(0), j2.get(0)));