java8使用filter()取出自己所需數(shù)據(jù)
使用filter()取出自己所需數(shù)據(jù)
java8的filter()方法是取出自己所需的數(shù)據(jù),返回滿足條件里的數(shù)據(jù)
person.java
package com.it.pojo;? import java.util.Comparator; import java.util.Objects; ? @Data @NoArgsConstructor @ToString public class Person { ? ? private String name; ? ? private Integer age; }
test.java
package com.it.test; import java.util.ArrayList; import java.util.List; import com.it.pojo.Person; import java.util.Comparator; import java.util.stream.Collectors; public class StreamTest { public static void main(String[] args) { Person person1 = new Person(); person1.setAge(21); person1.setName("21"); Person person2 = new Person(); person2.setAge(19); person2.setName("19"); Person person3 = new Person(); person3.setAge(19); person3.setName("20"); Person person4 = new Person(); person4.setAge(20); person4.setName("20"); Person person5 = new Person(); person5.setAge(19); person5.setName("18"); List<Person> people = new ArrayList<>(); people.add(person1); people.add(person2); people.add(person3); people.add(person4); people.add(person5); List<Person> collect1 = people.stream().filter((person) -> { return person.getName().equals("18"); //取姓名是18的Person數(shù)據(jù) }).collect(Collectors.toList()); System.out.println(collect1); List<Person> collect2 = people.stream().filter((person) -> { return person.getAge().intValue()==19 && person.getName().equals("19"); }).collect(Collectors.toList()); System.out.println(collect2); List<Person> collect = people.stream().filter(person -> person.getName().equals("181") //測試不滿足條件的list集合會(huì)是什么樣的 ).collect(Collectors.toList()); System.out.println(collect); //集合size==0 if(collect.size()==0){ System.out.println("nihao"); } } }
結(jié)果
java8 filter使用心得
如果A集合元素?cái)?shù)量10個(gè),filter滿足條件為5個(gè),沒有賦值新集合,那么A還是原來的10個(gè),如果賦值給B集合,B集合為5個(gè);
如果A集合10個(gè),filter滿足條件為5個(gè),賦值給B集合,遍歷B集合,對(duì)這5個(gè)元素進(jìn)行了修改,那么A集合中的5個(gè)元素也會(huì)同時(shí)修改。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Logback動(dòng)態(tài)修改日志級(jí)別的方法
這篇文章主要介紹了Logback動(dòng)態(tài)修改日志級(jí)別的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-11-11Spring中的@ModelAttribute模型屬性綁定詳解
這篇文章主要介紹了Spring中的@ModelAttribute模型屬性綁定詳解,@ModelAttribute用于將方法參數(shù)或返回值綁定到Model屬性上,并公開給Web視圖,支持使用@RequestMapping注釋的Controller類,需要的朋友可以參考下2024-02-02Java中ArrayBlockingQueue和LinkedBlockingQueue
這篇文章主要介紹了Java中ArrayBlockingQueue和LinkedBlockingQueue,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下2022-09-09IDEA中springboot的熱加載thymeleaf靜態(tài)html頁面的方法
這篇文章主要介紹了IDEA中springboot的熱加載thymeleaf靜態(tài)html頁面的方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-07-07SpringCloud?Gateway?DispatcherHandler調(diào)用方法詳細(xì)介紹
我們第一個(gè)關(guān)注的類就是DispatcherHandler,這個(gè)類提供的handle()方法,封裝了我們之后所有的handlerMappings,這個(gè)DispatcherHandler有點(diǎn)想SpringMVC的DispatchServlet,里面也是封裝了請(qǐng)求和對(duì)應(yīng)的處理方法的關(guān)系2022-10-10