【HDU 7015 Another String】題解
阿新 • • 發佈:2021-12-08
凡是根據上下文推匯出來的內容,都可以省略書寫。
可以省略的內容:
-
(引數列表):括號中引數列表的資料型別,可以省略不寫
-
(引數列表):括號中的引數如果只有一個,那麼型別和()都可以省略
-
{一些程式碼}:如果{}中的程式碼只有一行,無論是否有返回值,都可以省略({},return,分號); 注意:要省略{},return,分號必須一起省略
由三部分組成:
-
一些引數
-
一個箭頭
-
一段程式碼
格式:
(引數列表)——> {一些重寫方法的程式碼};
解釋說明格式
():介面中抽象方法的引數列表,沒有引數,就空著;有引數就寫出引數,多個引數使用逗號分隔
->:傳遞的意思,把引數傳遞給方法體{}
{}:重寫介面的抽象的方法體
/*
需求:
給定一個廚子Cook介面,內含唯一的抽象方法makeFood,且無引數、無返回值
使用Lambda的標準格式呼叫invokeCook方法,列印輸出“吃飯啦!”字樣
*/
public interface Cook {
public abstract void makeFood();
}
public class Demo {
public static void main(String[] args) {
//呼叫invokeCook方法,引數是Cook介面,傳遞Cook介面的匿名內部類物件
invokeCook(new Cook() {
public class Demo {
public static void main(String[] args) {
Arrays.sort(arr,new Comparator<>() {
public int compare(Person o1,Person o2) {
return o1-o2;
}
});
Arrays.sort(arr,(Person o1,Person o2) -> {
return o1 - o2;
});
}
}
/*
給定一個計算器Calculator介面,內含抽象方法clac可以將兩個int數字相加得到值
*/
public interface Calculator {
public abstract int calc(int a,int b);
}
public class Demo {
public static void main(String[] args) {
invokeClac(120,130,(int a,int b) -> {
return a + b;
});
}
private static void invokeClac(int a,int b,Calaulator calaulator) {
int result = calaulator.calc(a ,b);
System.out.println("結果是"+result);
}
}
Lambda的使用前提
-
使用Lambda必須具有介面,且要求介面中有且僅有一個抽象方法
-