1. 程式人生 > >Java8 lambda表示式學習(3):filter操作

Java8 lambda表示式學習(3):filter操作

實現這樣一個功能,找到一個班裡數學分數高於90分的。 
那還不簡單,廢話不多說,直接開擼。 

void doSomeThing(List<Student> list) {
    List<Student> newList = new ArrayList<>();
    for (Student student : list) {
        if (student.getScore() > 90) {
            newList.add(student);
        }
    }
    for (Student student : newList) {
        System.out.println(student.getName());
    }
}

醜,真滴醜,不忍直視的醜。 
 
再看看這個

void doSomeThing(List<Student> list) {
    List<Student> newList = list.stream().filter(item -> item.getScore() > 90).collect(Collectors.toList());
    newList.forEach(item -> System.out.println(item.getName()));
}

是的,這就結束了。

當然還有變態的需求,找到第一個分數高於90分的。

哦 


void doSomeThing(List<Student> list) {
    Optional<Student> optionalStudent = list.stream().filter(item -> item.getScore() > 90).findFirst();
    optionalStudent.ifPresent(student -> System.out.println(student.getName()));
}

轉載於::https://blog.csdn.net/xiang_36/article/details/80769898 
 

相關推薦

Java8 lambda表示式學習(3)filter操作

實現這樣一個功能,找到一個班裡數學分數高於90分的。  那還不簡單,廢話不多說,直接開擼。  void doSomeThing(List<Student> list) {     List<Student> newList = new ArrayLi

Java8 lambda表示式學習(1)匿名內部類

以往簡單地新建一個執行緒是這樣: public class MainApp { public static void main(String[] args) { new Thread(new Runnable() {

Java8集合中的Lambda表示式 ------與LambdaJ(集合操作)區別開來

Lambdas表示式是Java 8的主題,在Java平臺上我們期待了很久。但是,如果如果我們不在集合中使用它的話,就損失了很大價值。把現有介面遷移成為lambda風格介面的問題已經通過default methods,也就是defender methods解決了。在這篇文章裡面我們來看一看Java集合

Java8新特性之Lambda表示式學習

大家好,又來到超超部落格大本營啦!歡迎大家...... 上一章我們講解了Lambda表示式的基礎語法,引數列表、變數等知識點,接下來我們接續探究Lambda的表示式、以及其中的方法引用。 一、Lambda的表示式: (1)如果表示式只有一行,那麼可以直接寫(不需要{}); (2)

Java8新特性之Lambda表示式學習

       剛畢業入職新工作,在職崗位培訓時,老師在操作集合老使用Lambda表示式。這使一個之前完全沒有接觸過Lambda表示式的少年甚是苦惱,看不懂,閒餘時間決定搞一搞Lambda表示式到底是啥東西?底層原理怎麼實現的,接下來我將我的學習成果一起分享

Java8 Lambda表示式與Stream API (一)Lambda表示式

你要知道的Java8 匿名內部類、函式式介面、lambda表示式與Stream API都在這裡 本文主要講解Java8 Stream API,但是要講解這一部分需要匿名內部類、lambda表示式以及函式式介面的相關知識,本文將分為兩篇文章來講解上述內容,讀

SpringBoot學習3springboot整合filter

cep att ted () eat bean string spring 路徑 整合方式一:通過註解掃描完成 Filter 組件的註冊 1、編寫filter package com.bjsxt.filter; import javax.servlet.*; impor

java8 Lambda表示式學習與測試

public class Employee { private String name; private String sex; private int age; public Employee(String name, String sex, int age) {

機器學習(3)信息論

clas spa strong nbsp 信息熵 機器 ont 應用 信息 1.信息熵 2.相對熵 3.互信息 4.交叉熵及深度學習的應用 機器學習(3):信息論

python3 學習 3python爬蟲之爬取動態載入的圖片,以百度圖片為例

轉: https://blog.csdn.net/qq_32166627/article/details/60882964 前言: 前面我們爬取圖片的網站都是靜態的,在頁面中右鍵檢視原始碼就能看到網頁中圖片的位置。這樣我們用requests庫得到頁面原始碼後,再用bs4庫解析標籤即可儲存圖片

jdk8 lambda表示式總結 Java8 lambda表示式10個示例

Java8 lambda表示式10個示例    1. 實現Runnable執行緒案例 使用() -> {} 替代匿名類: //Before Java 8: new Thread(new Runnable() { @Override

Java8——Lambda表示式入門

之前一直有聽說過Lambda表示式,但是一直也沒有使用過,最近學習了一下,感覺還不錯,簡單方便,把原來需要很多行才能實現的功能可以直接一行實現。不過最好也不要盲目的使用,並不是所有情況都適合用它! 引用一段大佬的話——超過3行的邏輯就不適用Lambda表示式了。雖然看著很先進,其實Lambd

Java Builder模式 Lambda表示式 Java8 lambda表示式10個示例

Java Builder模式 package com.cathay;/** * @Description * @TODO * @Author [email protected] * @Date 建立時間:2018/11/16 **/public class Person { private

springboot學習(七)Filter \Listener \Interceptor的使用

說明 之前學了在springboot專案中過濾器、監聽器、攔截器的使用,在這裡記錄總結下。 正文 對於過濾器和監聽器,在springboot中可以使用兩種配置方式: 第一種,採用Servlet3.0的註解進行配置 @WebFilter @WebListener,使用此方式要在

java8--lambda表示式

java8中lambda表示式,類似c#中 lambda表示式,ES6中的箭頭函式 。   定義: 若java 介面中只有一個抽象方法,我們new 這個介面的例項時需要實現這個唯一的抽象方法,除此之外我們還可以使用一種新的表達方式來new這個介面的例項物件,這就是

Java8-lambda表示式總結

lambda表示式總結 lambda表示式是java8新特性,主要有如下極大用處 1.簡化匿名內部類 public class LambdaDemo { @Test public void test01() { // 使用匿名內部類

LIVE555學習3live555MediaServer講解——Live555從啟動到響應Client過程分析

文章目錄 1 概述 2 程式碼分析 2.1 doEventLoop 2.2 計劃任務 2.3 RTSP服務 2.3.1 呼叫關係 2.3.2 Server監聽埠的建立 2.3.3 計劃任務

Java8 Lambda表示式原理掃盲

背景 在使用Lamdba表示式,一直以為是內部類的方式實現的,但是一想如果每次呼叫都例項化一個內部類,效能肯定不好,難道Java裡的lambda表示式真的是這麼實現的嗎?也許是該研究下原理了。 正文 測試程式碼: public class Test{ public void test

node學習檔案操作

檔案操作涉及到了nodejs設計思想中的非同步I/O(檔案操作、網路操作) 非同步程式設計: 非同步I/O input/output: 1、檔案操作 2、網路操作 在瀏覽器中也存在非同步操作: 1、定時任務 2、事件處理 3、Ajax回撥處理 js的執行時單執行緒的單執行緒存

node學習路徑操作

首先需要匯入path模組: const path = require('path'); path.basename(path[,.ext]): // 獲取路徑的最後一部分 console.log(path.basename('/foo/bar/baz/asdf/quux.html'));