Java Lambda表达式:不兼容的类型:lambda表达式中的错误返回类
发布时间:2020-12-15 08:26:02 所属栏目:Java 来源:网络整理
导读:我有以下工作列表,每个元素都是一个包含利润和难度的列表: ListListInteger jobs = new ArrayList();for (int i = 0; i difficulty.length; i++) { ListInteger job = new ArrayListInteger(); job.add(profit[i]); job.add(difficulty[i]); jobs.add(job);
我有以下工作列表,每个元素都是一个包含利润和难度的列表:
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); } 现在我想根据他们的利润(每个工作的第一个元素)对工作进行排序,如下所示: 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))); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |