更多JAVA8新特性的介绍看这篇博客
What’s new in JDK8
今天看到了lamda表达式和方法引用,快来看一下吧
import java.util.*;
public class Test {
public static void main(String[] args) {
List<String> cities = Arrays.asList("Atlanda", "Savannah", "New York", "Indiana");
//写法一:lamda表达式
cities.sort(((s, t1) -> s.compareToIgnoreCase(t1)));
//写法二:方法引用
cities.sort(String::compareTo);
cities.forEach(e -> System.out.println(e));
System.out.println("-------------");
//按长度从短到长排列
cities.sort(Comparator.comparing(String::length));
cities.forEach(e -> System.out.println(e));
System.out.println("--------------");
String[] cities1 = {"Atlanda", "Savannah", "New York", "Dallas"};
Arrays.sort(cities1, Comparator.comparing(String::length));
//无法用 cities.foreach
for (String s:cities1
) {
System.out.println(s);
}
System.out.println("---------------");
Collection<String> collection = Arrays.asList("white", "green","blue" );
System.out.println(Collections.max(collection));
System.out.println(Collections.min(collection,Comparator.comparing(String :: length)));
}
}
Atlanda
Indiana
New York
Savannah
-------------
Atlanda
Indiana
New York
Savannah
---------------
Dallas
Atlanda
Savannah
New York
---------------
white
blue
方法引用
public class Test {
public static void main(String[] args) {
Something something = new Something();
//引用静态方法static String valueOf
//写法一
A<String,Integer> a = t -> Integer.valueOf(t);
//写法二
// A<String,Integer> a = Integer :: valueOf;
Integer integer = a.convert("123");
System.out.println(integer);
//引用对象方法
A<String,String> s = something :: startWith;
String s1 = s.convert("java");
System.out.println(s1);
}
public interface A<T1,T2>{
T2 convert(T1 t);
}
}
class Something{
String startWith(String s){
return String.valueOf(s.charAt(0));
}
}
123
j