Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 8 Lambda不工作?_Java_Lambda_Java 8 - Fatal编程技术网

Java 8 Lambda不工作?

Java 8 Lambda不工作?,java,lambda,java-8,Java,Lambda,Java 8,嗨,我有一个(我假设是)非常琐碎的代码: List<Integer> f = new LinkedList<Integer>(); Collections.sort(f, (Integer f1, Integer f2) -> { Integer.compare(f1,f2); }); listf=newlinkedlist(); Collections.sort(f,(整数f1,整数f2)->{ 整数。比较(f1,f2); });

嗨,我有一个(我假设是)非常琐碎的代码:

List<Integer> f = new LinkedList<Integer>();
    Collections.sort(f, (Integer f1, Integer f2) -> {
        Integer.compare(f1,f2);
    });
listf=newlinkedlist();
Collections.sort(f,(整数f1,整数f2)->{
整数。比较(f1,f2);
});
但是,我得到以下编译错误:


无法从
比较器
转换到
比较器在这种情况下,您可以使用方法引用:

 List<Integer> f = new LinkedList<>();
 Collections.sort(f, Integer::compare);
如果lambda包含
{}

同样的事情,没有返回和括号:

Collections.sort(f, (f1 ,  f2) -> 
         Integer.compare(f1,f2)
);
下面评论部分的一些有用注释:

可以只使用集合。排序(f)
并依赖自然排序。借


因为Java8
List
接口有
sort
方法,也可以使用
f.sort(null);f、 排序(Comparator.naturalOrder())
or,
Collections.sort(f,Comparator.naturalOrder())

嗯,但如果我只是想这样做怎么办?那不可能吗?我做错了什么?谢谢你的回答,但它没有回答我的问题!非常感谢,我没有意识到我弄乱了返回{}的东西,很高兴知道。@bharal我更新了我的原始答案,但最短的方法是使用方法引用。你可以简单地进行集合。排序(f)并依赖自然排序。或者
f.sort(null)。或者,
f.sort(Comparator.naturalOrder())
or,
Collections.sort(f,Comparator.naturalOrder())也可以。这里几乎是强制性引用的地方,因为每个使用
LinkedList
的人很可能都没有读过它……我并不总是使用列表,但当我使用Vector时,你应该总是在适当的地方使用
List
s。但更喜欢
ArrayList
。几乎没有理由使用
LinkedList
@bharal如果你喜欢/使用向量,那么你需要阅读以下内容(我也读过,也学到了!):@Holger这里的每个人都很严肃,不是吗?
Collections.sort(f, (f1 ,  f2) -> 
         Integer.compare(f1,f2)
);