Java之使用Lambda表達式,定義一個有參數有返回值的方法

2020-12-17 彼岸end

各位小夥伴們大家好,在之前的文章中小編介紹了Java之使用Lambda表達式,定義一個無參數無返回值的方法,這次小編要介紹的是使用Lambda表達式,定義一個有參數,有返回值的方法,其實和定義無參數,無返回值的方法差不多。

代碼如下:

//定義一個Person類

public class Person {

private String name;

private int age;

public Person() {

}

public Person(String name,int age) {

this.name=name;

this.age=age;

}

//使用toString方法,方便查看結果

public String toString() {

return"Person{"+

"name='"+name+'\''+

",age="+age+

'}';

}

//get、set方法

public String getName() {

return name;

}

public void setName(String name) {

this.name=name;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age=age;

}

}

main方法,沒有使用Lambda方法

import java.util.Arrays;

import java.util.Comparator;

public class Demo01Arrys {

public static void main(String args[]) {

//使用數組存儲多個Person對象

Person[] arr= {

new Person("小紅",11),

new Person("小白",10),

new Person("小藍",12)

};

//對數組中的Person對象使用Arrays的sort方法通過年齡進行升序排序

/* Arrays.sort(arr,new Comparator<Person>() {

public int compare(Person o1,Person o2) {

return o1.getAge()-o2.getAge();

}

});*/

//使用Lambda表達式,簡化匿名內部類

Arrays.sort(arr,(Person o1,Person o2)->{

return o1.getAge()-o2.getAge();

});

//遍歷數組

for(Person p:arr) {

System.out.println(p);

}

}

}

使用匿名內部類和使用Lambda表達式兩者相對比,不難發現,使用Lambda表達式,直接調用Arrays中的sort方法,對年齡進行升序排序,然後return返回參數,更簡單其實Lambda表達式還可以簡化,小編在接下來的文章中會介紹。關於使用Lambda表達式定義一個有參數,有返回值的方法,小編就先說到這裡,希望這篇文章可以幫助大家,也歡迎各位小夥伴補充和糾錯

圖片來自網絡,如有侵權,請聯繫作者刪除

相關焦點

  • Java之使用Lambda表達式,定義一個無參數無返回值的方法
    Java之Runnable表達式的簡單介紹,這次小編要介紹的是,使用Lambda表達式,定義一個無參數無返回值的方法如,給定一個Phone接口,內唯一一個抽象方法ringUp,無參數,無返回值。使用Lambda的標準格式調用involvePhone方法,列印輸出「打電話」字樣。
  • Java8 lambda表達式
    如何在正確的場合使用lambda表達式?下面有幾個使用lambda表達式的例子①展示了在沒有參數的情況下如何使用lambda,可以使用一對空的小括號來表示沒有參數,這是一個實現了Runnable的lambda的表達式,該接口只有一個方法run(),該方法不接受任何參數,且返回void.
  • Java lambda表達式
    如果lambda表達式匹配參數類型(在這種情況下,是StateChangeListenerinterface),lambda表達式將轉換成實現該參數接口的函數。Java lambda表達式只能在匹配的類型只是單方法接口的時候使用。在上面的示例中,使用lambda表達式作為參數,參數類型為StateChangeListener接口。這個接口只有一個方法。
  • Java 8新特性:學習如何使用Lambda表達式(一)
    (有一些已知存在的函數,但沒有人知道如何計算它們的值。)他使用希臘符號lambda(λ)來標記參數。從那以後,帶有參數變量的表達式被稱為「lambda表達式」。Java lambda略有幾種不同的形式。讓我們更仔細地考慮一下。您剛剛看到其中一個:參數, - >箭頭和表達式。
  • 自從學會Java中的lambda表達式和函數式編程技巧,再也不用加班了!
    lambda表達式簡化了被註解的函數接口的使用,這些接口都聲明了一個抽象方法(當然它們也可以聲明默認,靜態和私有的方法)。比如,標準類庫提供了一java.lang.Runnable接口,其中包含一個抽象方法void run()。
  • Java 8新特性:學習如何使用Lambda表達式(二)
    該 repeatText方法可以在lambda表達式的代碼運行之前返回,而那時參數 count和 text變量將消失,但它們仍然可用於lambda。秘密是什麼?要了解發生了什麼,我們需要提高對lambda表達式的理解。
  • Lambda 表達式的 10 個示例
    還有一個 reduce() 函數可以將所有值合併成一個。Map和Reduce操作是函數式編程的核心操作,因為其功能,reduce 又被稱為摺疊操作。另外,reduce 並不是一個新的操作,你有可能已經在使用它。SQL中類似 sum()、avg() 或者 count() 的聚集函數,實際上就是 reduce 操作,因為它們接收多個值並返回一個值。
  • 【Java 8系列】Lambda 表達式,你學廢了嗎
    使用Lambda 表達式可以使代碼變的更加簡潔緊湊。Lambda 表達式是一種匿名函數(對 Java 而言這並不完全正確,但現在姑且這麼認為),簡單地說,它是沒有聲明的方法,也即沒有訪問修飾符、返回值聲明和名字。1.1 為什麼 Java 需要 Lambda 表達式?
  • 大家都在說的「Lambda 表達式」到底是什麼?
    >Lambda表達式體現的是輕量級函數式編程思想『->』符號式Lambda表達式核心操作符號,符號左側是操作參數,符號右側是操作表達式1、在定義中有一個比較重要的詞就是「函數式編程」現在「函數式編程」越來越受到關注了,有興趣的小夥伴可以了解一下,java8引入Lambda
  • 你真的了解java的lambda嗎?- java lambda用法與源碼分析
    我們可以看到sort的第二個參數是Comparator的compare方法,參數類型是T,分別是o1和o2,返回值是一個int。通過了解function interface我們能夠知道怎麼才能正確的創建一個function interface來做lambda表達式了。接下來的是了解java是怎麼把一個函數當做一個對象作為參數使用的。
  • 「數據清洗」lambda表達式配合使用的四種函數
    lambda表達式常用來聲明匿名函數,即沒有函數名字的臨時使用的小函數,常用在臨時需要一個類似於函數的功能但又不想定義函數的場合。它只可以包含一個表達式,不允許包含其他複雜的語句,但在表達式中可以調用其他函數,該表達式的計算結果相當於函數的返回結果。lambda表達式可以接受任意數量的參數,但函數只能包含一個表達式。
  • Java8中lambda表達式的語法,別人都會的,你還不會嗎?「一」
    函數程式語言最重要的基礎是λ演算(lambda calculus),λ演算的函數可以接受函數當作輸入(參數)和輸出(返回值)。 函數式編程是"結構化編程"的一種,主要思想是把運算過程儘量寫成一系列嵌套的函數調用。
  • 面試中一定會問的JAVA8新特性——Lambda表達式
    從張汝京的大陸IC夢說起 :(一)張汝京的IC經歷Lambda表達式(也稱為閉包)是整個Java 8發行版中最受期待的在Java語言層面上的改變,Lambda允許把函數作為一個方法的參數(函數作為參數傳遞進方法中),或者把代碼看成數據:函數式程式設計師對這一概念非常熟悉。
  • 深度解讀 深入淺出 Java 8 Lambda 表達式
    在 Java 中定義的函數或方法不可能完全獨立,也不能將方法作為參數或返回一個方法給實例。簡而言之,在 Java 裡將普通的方法或函數像參數一樣傳值並不簡單,為此,Java 8 增加了一個語言級的新特性,名為 Lambda 表達式。為什麼 Java 需要 Lambda 表達式?如果忽視註解(Annotations)、泛型(Generics)等特性,自 Java 語言誕生時起,它的變化並不大。
  • Java中Lambda表達式的5種不同語法
    在這種情況下,它是一個單一表達式-Integer.compare(m.length(), n.length())Output:[a, is, java, site, creek, program]2.可以推斷參數類型
  • 【外文翻譯】外國友人寫得很不錯的Java Lambda表達式入門教程,我終於翻譯好給大家啦!!!
    Lambda 表達式是 Java SE 8 中一個重要的新特性。lambda 表達式允許你通過表達式來代替功能接口。lambda 表達式就和方法一樣, 它提供了一個正常的參數列表和一個使用這些參數的主體 (body, 可以是一個表達式或一個代碼塊)。Lambda 表達式還增強了集合庫。
  • java8 之 lambda 表達式簡介
    如果不能用一個表達式表示運行的代碼,我們也可使用以下方式:函數式接口:含有單一方法的接口稱為 SAM(Single Abstract Method,單抽象方法)接口,函數式接口是對舊有 SAM 接口的增強,它允許我們用 lambda 表達式取代傳統的匿名類來實例化一個接口。
  • Effective java-Lambda使用
    為了能根據時代發展,java 8中引入了lambda表達式。促進了java的函數編程,大大提升了開發效率。lambda表達式的出現,改變了Java開發者的編程習慣,但lambda應該如何更好的使用呢? effective java 中給出了說明。
  • Lambda 表達式,簡潔優雅就是生產力!
    本文轉載自【微信公眾號:java進階架構師,ID:java_jiagoushi】經微信公眾號授權轉載,如需轉載與原文作者聯繫1什麼是Lambda?我們知道,對於一個Java變量,我們可以賦給其一個「值」。
  • Java Lambda 使用教程
    總結就是:使用不可變值與函數,函數對不可變值進行處理,映射成另一個值。二、java重要的函數式接口1、什麼是函數式接口函數接口是只有一個抽象方法的接口,用作 Lambda 表達式的類型。使用@FunctionalInterface註解修飾的類,編譯器會檢測該類是否只有一個抽象方法或接口,否則,會報錯。可以有多個默認方法,靜態方法。