殊不知,Java8/9已悄然发布多日,然而项目中却依旧使用Java7甚至Java6,身为一名开发人员,有点落伍,新技术跟不上,注定被淘汰!当然项目的目标是求稳而非求新。
Java8的发布引入了几个新特性,也对原有功能进行了改进,下面先来揭开Collections.sort的面纱。
在Java8之前对集合进行排序时,一般使用匿名类实现Comparator接口,在Java8中,这种使用已发生改变,下面看看Java8前后的使用方法。
- Java8之前
private void sortUsingJava7(List<String> names)
{
Collections.sort(names, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return o1.compareTo(o2);
}
});
}
- Java8之后
private void sortUsingJava8(List<String> names)
{
Collections.sort(names, (String s1, String s2) -> s2.compareTo(s1));
}
当然之后的写法还可以写成如下形式(取消比较对象的类型声明):
Collections.sort(names, (s1, s2) -> s2.compareTo(s1));
从前后的对比来看,Java8的排序方式更加简单,但->这种给一直从事Java的人一种函数的感觉,官方的叫法为“Lambda 表达式”!