国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Java基礎(chǔ)】Java8 使用 stream().filter()過濾List對象(查找符合條件的對象集合)

這篇具有很好參考價值的文章主要介紹了【Java基礎(chǔ)】Java8 使用 stream().filter()過濾List對象(查找符合條件的對象集合)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

本篇主要說明在Java8及以上版本中,使用stream().filter()來過濾List對象,查找符合條件的集合。

一、集合對象定義

集合對象以學(xué)生類(Student)為例,有學(xué)生的基本信息,包括:姓名,性別,年齡,身高,生日幾項。

我的學(xué)生類代碼如下:

package com.iot.productmanual.controller;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDate;
import java.util.List;

/**
 * <p>Student此類用于:學(xué)生信息實體 </p>
 * <p>@author:hujm</p>
 * <p>@date:2023年01月12日 18:36</p>
 * <p>@remark:注意此處加了Lombok的@Data、@AllArgsConstructor、@NoArgsConstructor注解,所以此類的Getter/Setter/toString/全參構(gòu)造/無參構(gòu)造都省略 </p>
 */
@Data
@ApiModel(value = "學(xué)生信息實體")
@AllArgsConstructor
@NoArgsConstructor
public class Student implements Comparable<Student> {

    @ApiModelProperty("姓名")
    private String name;

    @ApiModelProperty("性別 true男 false女")
    private Boolean sex;

    @ApiModelProperty("年齡")
    private Integer age;

    @ApiModelProperty("身高,單位米")
    private Double height;

    @ApiModelProperty("出生日期")
    private LocalDate birthday;

    @Override
    public int compareTo(Student student) {
        return this.age.compareTo(student.getAge());
    }

    @Override
    public String toString() {
        return String.format("%s\t\t%s\t\t%s\t\t%s\t\t%s",
                this.name, this.sex.toString(), this.age.toString(), this.height.toString(), birthday.toString());
    }

    /**
     * 打印學(xué)生信息的靜態(tài)方法
     *
     * @param studentList 學(xué)生信息列表
     */
    public static void printStudentList(List<Student> studentList) {
        System.out.println("【姓名】\t【性別】\t【年齡】\t\t【身高】\t\t【生日】");
        System.out.println("-----------------------------------------------------");
        studentList.forEach(s -> System.out.println(s.toString()));
        System.out.println(" ");
    }
}

二、添加測試數(shù)據(jù)

下面來添加一些測試用的數(shù)據(jù),代碼如下:

List<Student> studentList = new ArrayList<>();
// 添加測試數(shù)據(jù),請不要糾結(jié)數(shù)據(jù)的嚴(yán)謹(jǐn)性
studentList.add(new Student("張三", true, 18, 1.75, LocalDate.of(2005, 3, 26)));
studentList.add(new Student("李四", false, 16, 1.67, LocalDate.of(2007, 8, 30)));
studentList.add(new Student("王五", true, 23, 1.89, LocalDate.of(2000, 1, 16)));
studentList.add(new Student("麻六", false, 27, 1.75, LocalDate.of(1996, 9, 20)));
studentList.add(new Student("劉七", false, 30, 1.93, LocalDate.of(1993, 6, 19)));
studentList.add(new Student("王八", false, 30, 1.75, LocalDate.of(1993, 6, 19)));

三、使用filter()過濾List

添加過濾條件,比如年齡小于25歲并且身高大于1米7的學(xué)生列表

// 輸出沒有過濾條件的學(xué)生列表
Student.printStudentList(studentList);
// 添加過濾條件,比如年齡小于25歲并且身高大于1米7的學(xué)生列表
List<Student> ageHeightList = studentList.stream().filter(student -> student.getAge() < 25 && student.getHeight() > 1.7).collect(Collectors.toList());
// 輸出符合條件的學(xué)生列表
Student.printStudentList(ageHeightList);

結(jié)果如下圖:

java8 過濾,Java基礎(chǔ),java,開發(fā)語言,Powered by 金山文檔

本文首發(fā)于CSDN,為博主原創(chuàng)文章,如果需要轉(zhuǎn)載,請注明出處,謝謝!

本文完結(jié)!文章來源地址http://www.zghlxwxcb.cn/news/detail-524699.html

到了這里,關(guān)于【Java基礎(chǔ)】Java8 使用 stream().filter()過濾List對象(查找符合條件的對象集合)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Java8-使用stream.sorted()對List排序

    1.流的定義 Stream 中文稱為 “流”,通過將集合轉(zhuǎn)換為這么一種叫做 “流” 的元素序列,通過聲明性方式,能夠?qū)现械拿總€元素進(jìn)行一系列并行或串行的操作! 如果流中的元素的類實現(xiàn)了 Comparable 接口,即有自己的排序規(guī)則,那么可以直接調(diào)用 sorted() 方法對元素進(jìn)行排

    2024年02月16日
    瀏覽(93)
  • java8利用Stream方法求兩個List對象的交集、差集與并集(即:anyMatch和allMatch和noneMatch的區(qū)別詳解)

    1、anyMatch? 判斷數(shù)據(jù)列表中是否存在任意一個元素符合設(shè)置的predicate條件,如果是就返回true,否則返回false。 接口定義: boolean anyMatch(Predicate? super T predicate); 方法描述: 在anyMatch 接口定義中是接收 Predicate 類型參數(shù),在Lamdba表達(dá)式中 PredicateT 是接收一個T類型參數(shù),然后經(jīng)過

    2024年02月06日
    瀏覽(92)
  • Java8使用stream流給List<Map<String,Object>>分組(多字段key)

    Java8使用 stream流 給ListMapString,Object根據(jù)字段key 分組 一、項目場景: 從已得到的List集合中,根據(jù)某一元素(這里指map的key)進(jìn)行分組,篩選出需要的數(shù)據(jù)。 如果是SQL的話則使用 group by 直接實現(xiàn),代碼的方式則如下: 使用到stream流的 Collectors.groupingBy() 方法。 二、代碼實現(xiàn) 1、首

    2024年02月02日
    瀏覽(87)
  • Java - Stream Filter 多條件篩選過濾

    Java - Stream Filter 多條件篩選過濾

    Java Stream流中Filter用于通過設(shè)置的條件過濾出元素 ,示例如下: 如果需要進(jìn)行多條件過濾 我們可以對這些參數(shù)進(jìn)行處理,我們只是需要做一下判斷,即: 讓所有參數(shù)默認(rèn)為 false,然后對傳進(jìn)來的值進(jìn)行取值判斷,若滿足該條件為true,多個條件進(jìn)行多次判斷 判斷完成之后 會

    2024年02月04日
    瀏覽(22)
  • list對象中如何根據(jù)對象中某個屬性去重使用Java8流實現(xiàn)

    list對象中如何根據(jù)對象中某個屬性去重使用Java8流實現(xiàn)

    在 Java 8 的流操作中,可以使用 distinct 方法來對一個對象流進(jìn)行去重,但是默認(rèn)情況下它會使用對象的 equals() 方法來判斷重復(fù)。如果你希望根據(jù)對象的某個屬性進(jìn)行去重,則可以使用 distinct 方法結(jié)合 map 方法來實現(xiàn)。 下面是一個示例代碼,假設(shè)你有一個 List 對象 list,其中包

    2024年02月11日
    瀏覽(131)
  • Java8對List集合中的數(shù)據(jù)進(jìn)行過濾處理

    目錄 0.需求場景 1.編碼實現(xiàn) ????????假設(shè)有這樣一個需求,將List中所有超過 35 歲的員工剔除,該如何實現(xiàn)呢?我們可以利用 Java8 的流式編程,輕松的實現(xiàn)這個需求。 ? ? ? ? 當(dāng)然也不局限與上述場景,對應(yīng)的處理方法適用與根據(jù) List 中元素或元素的屬性,對 List 進(jìn)行處

    2024年02月15日
    瀏覽(94)
  • Java8 Stream流List<JSONObject>通過某一屬性進(jìn)行排序

    List對象 1.首先你需要list.parallelStream().sorted 進(jìn)行流處理,使用parallelStream可以充分調(diào)度多核CPU。 2.使用Comparator.comparing進(jìn)行排序,reversed()進(jìn)行倒序排列,thenComparing進(jìn)行下一個排序。 3.Comparator.comparing()里面的內(nèi)容,也是就是Object::getter,例如Test::getName 4.最后格式化為需要的格式

    2024年02月12日
    瀏覽(94)
  • JAVA 使用stream流將List中的對象某一屬性創(chuàng)建新的List

    Java Stream是Java 8引入的一種新機制,它可以讓我們以聲明式方式操作集合數(shù)據(jù),提供了更加簡潔、優(yōu)雅的集合處理方式。Stream是一個來自數(shù)據(jù)源的元素隊列,并支持聚合操作。它的特點有: Stream 不會修改原始數(shù)據(jù)源。 Stream 操作是延遲執(zhí)行的。 Stream 操作可以是無限的(比如

    2024年02月03日
    瀏覽(93)
  • 【java】List對象集合去除特定對象的優(yōu)雅寫法(基于java8)

    【java】List對象集合去除特定對象的優(yōu)雅寫法(基于java8) 主要用的是 Java List.removeIf方法,該方法用于刪除所有滿足特定條件的數(shù)組元素,入?yún)⑵鋵嵤且粋€布爾值的表達(dá)式即可。 使用場景,用戶類中的性別字段有三個,分別是男、女、未知。 當(dāng)前端要查詢:“男”時,要求

    2024年02月16日
    瀏覽(91)
  • java8 List根據(jù)元素對象屬性去重

    1.使用Collectors.collectingAndThen鏈?zhǔn)饺ブ?代碼: main: 結(jié)果: 或者可以利用map也可以: 或: 或者不用鏈?zhǔn)揭部梢苑珠_: Collectors.collectingAndThen() ?函數(shù)應(yīng)該最像? map and reduce ?了, 它可接受兩個參數(shù),第一個參數(shù)用于? reduce 操作,而第二參數(shù)用于? map 操作 。 也就是, 先把流中

    2024年02月12日
    瀏覽(101)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包