1. 程式人生 > >JDK1.8新特性瞭解

JDK1.8新特性瞭解

public class LambdaTest {
	
	public static void main(String[] args) {
		List<String> names = Arrays.asList("A", "B", "C", "D");
		
		//Type 1
		Comparator<String> myComparator = new Comparator<String>() {
			@Override
			public int compare(String o1, String o2) {
				// TODO Auto-generated method stub
				return 0;
			}			
		};
		Collections.sort(names,myComparator);
		
		//Type 2
		Collections.sort(names, new Comparator<String>() {
			@Override
			public int compare(String o1, String o2) {
				// TODO Auto-generated method stub
				return 0;
			}			
		});
		
		//Type 3
		Collections.sort(names, (String a, String b) -> {return b.compareTo(a);} );
		
		//Type 4
		Collections.sort(names, (String a, String b) -> b.compareTo(a) );
		
		//Type 5
		Collections.sort(names, (a, b) -> b.compareTo(a));
		
		//Type 6
		Collections.sort(names, (a, b) -> myComparator.compare(a, b));
		
		//Type7
		Comparator<String> otherComparator = myComparator::compare;
		Collections.sort(names,otherComparator);
		
		
		for(int i=0;i<4;i++) {
			System.out.println(names.get(i));
		}
	}
	
}

相關推薦

JDK1.8特性瞭解

public class LambdaTest { public static void main(String[] args) { List<String> names = Arrays.asList("A", "B", "C", "D"); //Type 1 Compa

jdk1.8特性 : 接口中可以有普通方法(非靜態方法)和靜態方法 , 顛覆了之前我的理解 : 接口中只能有共有常量和抽象方法的概念,後面必須要加一句jdk1.7和1..7之前

@override 編譯 sys 接口 blank new style nts highlight 看到jdk某些接口中存在default方法,於是... http://shaomeng95.iteye.com/blog/998820 為什麽接口只能是公有常量? p

jdk1.8特性之接口default方法

sent arguments sel 可能 beyond lar iter none 裏的   眾所周知,default是java的關鍵字之一,使用場景是配合switch關鍵字用於條件分支的默認項。但自從java的jdk1.8橫空出世以後,它就被賦予了另一項很酷的能力——在

jdk1.8特性之lambda表達式

rest 簡潔 cnblogs ensure 1.8 可能 finish main RF   lambda表達式其實就是指一個匿名函數,應用最廣泛的就是匿名內部類。在jdk1.8之前,我們定義一個匿名內部類可能需要寫一大坨代碼,現在有了lambda之後,可以寫的很簡潔了。但

jdk1.8特性應用之Iterable

accep sub 抽象 default describe dem generate using 操作   我們繼續看lambda表達式的應用: public void urlExcuAspect(RpcController controller, Message

jdk1.7/jdk1.8特性

在面試中經常會問jdk1.6,jdk1.7,jdk1.8的區別: 最近面試的時候的面試官問我jdk8的新特性: 我回答了幾個,他提問到:為什麼defualt沒有被推廣,有什麼弊端。 我很蒙圈,在這裡新增下回答: 我目前還不知道 jdk1.7新增特性: 1.7新特性轉載 1 s

Java基礎入門之jdk1.8特性

Lamda 表示式(目標型別) 簡介 語法糖,也叫糖衣語法 指的是計算機中 新增某種語法 這種語法 ,能使程式設計師更加方便的使用語言開發程式,同時,增強了程式碼的可讀性 避免了出錯的機會,但是,這種語法對於語言的功能並且有增強 例如: 泛型 自動裝箱拆箱 增強

Jdk1.8特性

Lambda表示式:Lambda 允許把函式作為一個方法的引數(函式作為引數傳遞進方法中)。可以使程式碼變的更加簡潔緊湊。       Lambda表示式的實質其實還是匿名內部類,而匿名內部類在訪問外部區域性變數時,要求變數必須宣告為final!不過我們在使用Lambda表示

Java基礎(五):JDK1.8特性

JDK1.8新特性 lambda表示式 Lambda lambda作用:lambda是一個語法糖,簡化匿名內部類的使用。 lambda使用條件 引數或者變數必須是介面 介面中只包含一個抽象方法 lambda格式 (引數型別 引數名稱 …)-> { 程

【轉】JDK1.8特性

轉自:http://www.jb51.net/article/48304.htm   本教程將Java8的新特新逐一列出,並將使用簡單的程式碼示例來指導你如何使用預設介面方法,lambda表示式,方法引用以及多重Annotation,之後你將會學到最新的API上的改進,比如流,函式

JDK1.8特性(二)Lambda表示式入門

lambda表示式本質是匿名方法,下面是一些lambda表示式: (int x, int y) -> x + y () -> 42 (String s) -> { System.out.println(s); } 第一個lambda表示式接收x和y這兩個整形引

jdk1.8 特性之 forEach 迴圈遍歷

常規情況下我們基本都是這麼寫的 List<Integer> numbers = new ArrayList<>(); //no.1 for(Integer number

Java JDK1.8特性Lambda 表示式

一、lambda含義     lambda表示數學符號“λ”,計算機領域中λ代表“λ演算”,表達了計算機中最基本的概念:“呼叫”和“置換”。在很多動態語言和C#中都有相應的lambda語法,這類語法都為了簡化程式碼,提高執行效率。 二、lambda 專案的背景,參考

JDK1.8 特性(全)

https://blog.csdn.net/qq_29411737/article/details/80835658 JDK1.8 新特性(全) 2018年06月27日 22:01:54 qq_29411737 閱讀數:6952 版權宣告:本文為博主原創文章,未經博主

Java還要再學一遍基礎(四)JDK1.8特性default,static

JDK1.8新特性default,static用法 在1.8以前,我們的Interface之中通常除了抽象方法別的什麼都沒有,但是從1.8引入開始Interface中還可以有具體的實現!其中所要用到的兩個非常重要的關鍵字就是:default和static

JDK1.8特性(一)

本文主要介紹了JDK1.8的一些新特性,僅供參考; 前言:JDK1.8新特性知識點 紅黑樹 – 速度更快 Lambda表示式 – 程式碼更少 函式式介面 方法引用和構造器呼叫 Stream API – 強大的Stream API 介面中的預設方法和靜態方法

Java日期學習筆記(二):JDK1.8特性

Java 8另一個新增的重要特性就是引入了新的時間和日期API,它們被包含在java.time包中。藉助新的時間和日期API可以以更簡潔的方法處理時間和日期。 在介紹本篇文章內容之前,我們先來討論Java 8為什麼要引入新的日期API,與之前的時間和日期處理方式有什麼不同?

jdk1.8特性 函式式介面

函式式介面    1、只包含一個抽象方法的介面,稱為函式式介面。    2、你可以通過Lambda 表示式來建立該介面的物件。(若Lambda 表示式丟擲一個受檢異常,那麼該異常需要在目標介面的抽象方法上進行宣告)。    3、我們可以在任意函式式介面上使用@Function

jdk1.8特性 分組統計及格式化

package com.lixy.practice; import java.util.*; import java.util.stream.Collectors; import java.util.stream.IntStream; /** * Created

JDK1.8特性簡單介紹

Java8為容器新增一些有用的方法,這些方法有些是為完善原有功能,有些是為引入函數語言程式設計(Lambda表示式),學習和使用這些方法有助於我們寫出更加簡潔有效的程式碼(效能上先不說).本文分別以ArrayList和HashMap為例,講解Java8集合框架(Java C