天天看點

Java8-Runnable、排序

public static void main(String[] args) {
	//1、用lambda表達式實作Runnable
	//Java 8之前實作Runnable
	new Thread(new Runnable() {
		@Override
		public void run() {
			System.out.println("Before Java8, new Thread!");
		}
	}).start();
	//Java 8用lambda表達式實作Runnable
	new Thread( () -> {
		System.out.println("In Java8, new Thread!");
	}).start();


	//2、用Lambdas排序集合
	List<String> list = Arrays.asList("Rafael Nadal", "Novak","Stanislas","David Ferrer","Roger Federer","Andy Murray","Tomas","Juan");
	//Java 8之前使用匿名内部類進行排序
	list.sort(new Comparator<String>() {
		@Override
		public int compare(String o1, String o2) {
			return (o1.compareTo(o2));
		}
	});
	 System.out.println("Before Java8, After sort: ");
	list.forEach((player) -> System.out.print(player + "; "));
	//Java 8之前使用Lambda進行排序
	Comparator<String> sortByName = (String s1, String s2) -> (s1.compareTo(s2));
	Collections.sort(list, sortByName);
	System.out.println("");
	System.out.println("In Java8, After sort: ");
	list.forEach((player) -> System.out.print(player + "; "));

}
           

執行結果:

Before Java8, new Thread!
In Java8, new Thread!
Before Java8, After sort: 
Andy Murray; David Ferrer; Juan; Novak; Rafael Nadal; Roger Federer; Stanislas; Tomas; 
In Java8, After sort: 
Andy Murray; David Ferrer; Juan; Novak; Rafael Nadal; Roger Federer; Stanislas; Tomas;