Java中List集合過濾出符合條件的List元素集合
在專案開發的過程中,我們經常會對List集合進行按條件的過濾,篩選出我們想要的結果或者是符合專案需求的資料。比如:我們有一批學生物件,每個學生都有自己的年齡屬性,但是我們想要篩選出這一批學生中年齡為21和22的所有學生,我們就需要對這一批學生集合中的資料進行按條件的篩選,得到我們想要的結果。
建立學生實體類:
package com.shsj.entity; public class Student { private Integer stuNum; // 學號 private String name; // 姓名 private Integer age; // 年齡 public Integer getStuNum() { return stuNum; } public void setStuNum(Integer stuNum) { this.stuNum = stuNum; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } @Override public String toString() { return "Student [stuNum=" + stuNum + ", name=" + name + ", age=" + age + "]"; } }
使用Java8中的lambda表示式過濾
package com.shsj.test; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; import com.shsj.entity.Student; /** * @Description 按條件篩選出List集合中的資料 * @author 劉鵬博 * @version v1.0 * @date 2018年8月23日 */ public class FilterListTest { /** * @Description 建立四個學生物件並設值,儲存在list集合中,模擬資料 * @author 劉鵬博 * @return List<Student> */ public static List<Student> stuList() { List<Student> stuList = new ArrayList<Student>(); Student stu1 = new Student(); stu1.setStuNum(20180823); stu1.setName("張三"); stu1.setAge(20); stuList.add(stu1); Student stu2 = new Student(); stu2.setStuNum(20180824); stu2.setName("李四"); stu2.setAge(21); stuList.add(stu2); Student stu3 = new Student(); stu3.setStuNum(20180825); stu3.setName("王二"); stu3.setAge(21); stuList.add(stu3); Student stu4 = new Student(); stu4.setStuNum(20180826); stu4.setName("張五"); stu4.setAge(22); stuList.add(stu4); return stuList; } public static void main(String[] args) { List<Student> stuList = stuList(); // 需要篩選的條件:從stuList中篩選出年齡為21和22的學生 List<Integer> ageList = new ArrayList<Integer>(); ageList.add(21); ageList.add(22); // JDK1.8提供了lambda表示式, 可以從stuList中過濾出符合條件的結果。 // 定義結果集 List<Student> result = null; result = stuList.stream() .filter((Student s) -> ageList.contains(s.getAge())) .collect(Collectors.toList()); // 列印原有stuList集合中的資料 System.out.println("原有stuList集合中的資料"); stuList.forEach((Student s) -> System.out.println(s.getName() + "--->" + s.getAge())); // 列印過濾篩選後的result結果 System.out.println("過濾篩選後的result結果"); result.forEach((Student s) -> System.out.println(s.getName() + "--->" + s.getAge())); } }
相關推薦
Java中List集合過濾出符合條件的List元素集合
在專案開發的過程中,我們經常會對List集合進行按條件的過濾,篩選出我們想要的結果或者是符合專案需求的資料。比如:我們有一批學生物件,每個學生都有自己的年齡屬性,但是我們想要篩選出這一批學生中年齡為21和22的所有學生,我們就需要對這一批學生集合中的資料進行按條件的篩
【101】java的List中使用filter過濾出符合特定條件的元素List
在實際開發中,經常需要把一個列表中的元素,按照特定條件過濾出來,放到一個新的列表中。本文給出了幾個例子,來描述解決這個問題的方法。 我們假設有一個書的List,需要找出其中id分別是3、6、8、9的書。本文介紹了兩種方法來完成這個工作。第一種方法是使用jav
java過濾Map中符合條件的元素
廢話少說,程式碼如下: import java.util.HashMap; import java.util.Map; public class MapDemo { public static void main(String[] args) { Map<St
如何過濾數組對象和子節點對象中某一屬性不符合條件的
name EDA del fff 對象 ole address nbsp current tableData:[],//過濾後的數據 datalist:[//過濾前的數據 {name:‘chen‘,age:‘18‘,address:‘1‘,id:‘1‘,delete
Java中把物件、物件bean、list集合、物件陣列、Map和Set以及字串轉換成Json
把Java對常用的一些資料轉換成Json,以便前臺的呼叫. 物件轉換為Json public class ConvertJson { /** * 物件轉換為Json * @param obj * @
java8stream操作:從集合中獲取符合條件的元素
List<Student> students = new ArrayList<>(); students.add(new Student(1,"張三",
演算法:在一個集合中選取所有符合條件的元素組合
做了好幾個題目都遇到題中的場景。於是寫了個演算法,元素組合條件是求和。 演算法能適應的場景要求組合條件可以拆分的,有對應的逆運算。 程式碼實現的是取三個元素和在40~60之間的組合。迴圈n(testList.size())次可以獲取所有符合條件的組合。
VBS讀取txt文檔數據查找Excel中單元格數據符合條件的剪切到工作表2中
msg readline style 新建 font cti pre creat ins Dim fso,f,a set oExcel = CreateObject( "Excel.Application" ) oExcel.Visible = false ‘
java中內存溢出和內存泄漏的區別
int end fbo gin 一個 urn 垃圾 substring 內存問題 內存溢出 雖然在java中我們不用關心內存的釋放, 垃圾回收機制幫助我們回收不需要的對象,但實際上不正當的操作也會產生內存問題:如,內存溢出、內存泄漏 內存溢出:out of memory:簡
Java中應該返回零長度數組或空集合,而不是返回null(轉)
.com sta cti target 使用 net arr pla 而不是 說明:為了避免在數組和集合的獲取上增加null的判斷,同時也能減少不必要的空指針異常,通常會在業務返回零數組或空集合。 方法: 1、數組: 定義全局靜態常量來減少內存開銷:private s
c++ 查詢容器中符合條件的元素,並返回iterator(find_if)
#include <iostream> // std::cout #include <algorithm> // std::find_if #include <vector> // std::vector using name
list遍歷的時候,刪除某個符合條件的元素
印象中迴圈刪除list中的元素使用for迴圈的方式是有問題的,但是可以使用增強的for迴圈,然後今天在使用時發現報錯了,然後去科普了一下,再然後發現這是一個誤區。下面就來講一講。。伸手黨可直接跳至文末。看總結。。 JAVA中迴圈遍歷list有三種方式for迴圈、增強for迴圈(也就是常說的forea
java中陣列的最大長度以及List的最大容量
java 中陣列的最大長度是多少呢?看一下它的length屬性就可以了。length屬性是32位的有符號整數,它的最大值是2的31次冪,就是2G。為何有這個限制呢?為什麼length的屬性不是long型呢?我們假設一下,如果它是long型的,那麼它的最大長度
Java正則表示式過濾出字母
public class Test { public static void main(String[] args) throws Exception { // 替換 將4個或4
【知識】Java中迴圈打印出的各屬性的值
這個問題我們遇到過很多次了。 這裡單獨出一篇部落格,以便以後查閱。 我們知道如果有一個list,在java中如果列印其中的內容。需要迴圈遍歷,逐個列印。 for迴圈list的長度就可以了! 但如果是泛型呢?list的型別是List<Object>的時候呢?
JavaFile之獲取獲取目錄下符合條件的檔案集合
/* * @Datedir 日期檔案目錄 * @condition1 模糊匹配檔名稱條件一 * @condition2 模糊匹配檔名稱條件二 * 用於獲取目錄下符合條件的檔案集合
Java正則表示式過濾出字母、數字和中文
1、Java中過濾出字母、數字和中文的正則表示式 (1)過濾出字母的正則表示式 [^(A-Za-z)] (2) 過濾出 數字 的正則表示式 [^(0-9)] (3) 過濾出 中文 的正則表示式 [^(\\u4e00-\\u9fa5)] (4) 過濾出字母、數字
java中 若有多個判斷條件 switch比if效率更高
剛剛也就個人想了解下,在此整理下兩者之間的對比及效率更優的原因 兩者對比: 1、兩者都是條件比較語句,但是IF的比較範圍更廣,IF能處理所有的boolean型別的結果值,switch只能處理byte、short、int型別的數值比較。 2、兩者都是在匹配後執行程式碼
java中使用sax解析xml,以實體類集合的方式接受xml解析的值
1.先編寫要解析的xml檔案: <?xml version="1.0" encoding="utf-8"?> <class> <stu id="001"> <name>Allen</name> <sex&g
Java中字串與陣列,陣列與list之間的轉化,及字串處理
一、Java中字串與陣列之間的轉化 (1)字串-》陣列 如果字串中間有分隔符,比如“,”或者“ ”(空格)就可以利用分隔符來對字串進行分隔,轉化為陣列;舉例: String str = "1,2