很抱歉没有明确标题,我还是新手,甚至是英文。
Collections.sort(aList, (s1, s2) -> Float.compare(s1.getAFloat(), s2.getAFloat()));
如上所述,我可以使用方法参考吗?如果s1
和s2
是Float
并且他们不使用get-a-float方法,那么事情会变得更容易:
Collections.sort(aList,Float::compare);
但s1.getAFloat()
我不知道如何使用方法参考,甚至可能使用它,谢谢你的回答!
答案 0 :(得分:1)
您可以使用
Collections.sort(aList, Comparator.comparing(ItemType::getAFloat));
如果检索到的类型已经无法排序,您可以为comparing
添加一个额外的比较器。
答案 1 :(得分:0)
不,你不能。请查看以下代码。
List<Float> aList = Arrays.asList(5.2f, 9.7f);
Collections.sort(aList, (s1, s2) -> Float.compare(s1, s2));
Collections.sort(aList, Float::compare);
如果您的列表元素直接属于Float
类型,那么您将使用 method-reference 。
如果元素不是Float
类型,那么你可以这样做。
List<String> aList2 = Arrays.asList("5.2f", "9.7f");
aList2.stream().map(Float::valueOf).sorted(Float::compare)
.collect(Collectors.toList());