-
2022-03-28 10:36:49
如题:list中存放beans,想获取某个条件下的bean,按照传统的方式需要遍历list,拿着bean的字段去判断相等,然后返回符合条件下的bean对象,使用lambda的话,可以减少代码,如下:
Object bbb = list.stream().filter(item -> item.getName().equals("bbb")).findFirst().get();
代码:
package com.chunge.utest.test; import java.util.ArrayList; import java.util.List; import lombok.Data; public class LamdaTest { @Data public static class People{ private String name; private Integer age; } public static void main(String[] args) { //示例数据 People p1 = new People(); p1.setName("aaa"); p1.setAge(23); People p2 = new People(); p2.setName("bbb"); p2.setAge(23); People p3 = new People(); p3.setName("ccc"); p3.setAge(23); List<People> list = new ArrayList<People>(); list.add(p1); list.add(p2); list.add(p3); //获取list中name=bbb的对象 People bbb = list.stream().filter(item -> item.getName().equals("bbb")).findFirst().get(); System.out.println(bbb.toString()); } }
更多相关内容 -
java8(stream)从数组或集合中找到符合条件的就返回该对象
2022-01-09 18:21:14测试代码 public static void main(String[] args) { List<Integer> list =new ArrayList(); for (int i=0;i;i++){ list.add(i);...当并行使用时,如果只是想找到了就成立就使用findAny,否则采用findFirst.测试代码
public static void main(String[] args) { List<Integer> list =new ArrayList<>(); for (int i=0;i<10000;i++){ list.add(i); } Integer integer = list.stream() .filter(integer1 -> { System.out.println(integer1); return integer1 > 5; }).findAny().get(); System.out.println(); System.out.println(integer); }
- 单纯使用stream流时,findany和findFirst效果都是一样的,返回6,因为都是从0开始递增的判断,所以结果都是6.
- 使用parallelStream流时,findAny和findFirst效果不一样了,因为findFirst时找到大于5的第一个,所以仍然是返回6,但是findAny返回的值是不固定的,只要大于6的成立就马上返回.
总结
不并行使用流时,两者效果一致。当并行使用时,如果只是想找到了就成立就使用findAny,否则采用findFirst.
-
找出数组中符合某些条件的对象数组
2020-09-04 15:36:21过滤出符合某些条件的数组 一、当条件为单个时 const data = [ {id: 1,topic: '难过',title: '再见只是陌生人' }, {id: 2,topic: '遗憾',title: '落空'}, {id: 3,topic: '回忆',title: '那女孩对我说' } ] ...前言
过滤出符合某些条件的数组
一、当条件为单个时
const data = [ {id: 1,topic: '难过',title: '再见只是陌生人' }, {id: 2,topic: '遗憾',title: '落空'}, {id: 3,topic: '回忆',title: '那女孩对我说' } ] function filterData(data, params) { let _data = data.filter(item => item[params] === 2) return _data } console.log(filterData(data, 'id')) //[{id: 2, topic: "遗憾", title: "落空"}]
二、当条件为对象时
const data = [{ topic_id: 1, topic_name: '侧脸', first_class_category: '歌曲', second_class_category: '回忆', reviewing: 1, reviewed: 23, filtered: 111, effective_date: '2020-12-20 00:06:00', review_status: 'reviewing', online_status: 'offline', owner: '于果', }, { topic_id: 2, topic_name: '小幸运', first_class_category: '音乐', second_class_category: '青春', reviewing: 2, reviewed: 33, filtered: 121, effective_date: '2020-12-20 00:06:00', review_status: 'filtered', online_status: 'offline', owner: '田馥甄', }, { topic_id: 3, topic_name: '光年之外', first_class_category: '歌曲', second_class_category: '天籁之音', reviewing: 3, reviewed: 53, filtered: 151, effective_date: '2020-12-20 00:06:00', review_status: 'reviewed', online_status: 'online', owner: '邓紫棋', }, ] function filterData(data, obj) { return data.filter(item => { return Object.entries(obj).every(([_key, _val]) => { if (item[_key] === _val) return true }) }) } let obj = { first_class_category: '歌曲', review_status: 'reviewed' } console.log(filterData(data, obj)) //[{effective_date: "2020-12-20 00:06:00",filtered: 151,first_class_category: "歌曲",online_status: "online",owner: "邓紫棋",review_status: "reviewed",reviewed: 53,reviewing: 3,second_class_category: "天籁之音",topic_id: 3,topic_name: "光年之外"}]
总结
Ojbect.entries()返回可枚举属性的键值对数组
例如:let obj1 = { id: 1, topic: '难过', title: '再见只是陌生人' } console.log(Object.entries(obj)) //[["first_class_category", "歌曲"],["review_status", "reviewed"]]
-
JS——根据对象数组的某个属性值找到指定的对象
2021-07-19 16:02:53var datas = [ { "name": "Apple", "id": "1" }, { "name": "Banana", "id": "2" } ] var data= datas.filter((item)=>... // [{name: "Apple", id: "1"}] ...filter() 方法将匹配元素集合缩减为匹配指定选择...var datas = [ { "name": "Apple", "id": "1" }, { "name": "Banana", "id": "2" } ] var data= datas.filter((item) => item.id == "1") console.log(data); // [{name: "Apple", id: "1"}]
filter()
方法将匹配元素集合缩减为匹配指定选择器的元素.该方法不改变原数组,返回的是筛选后满足条件的数组. -
JS如何提取多个对象中符合某个条件的对象
2020-04-10 00:34:57提要:这里以提取多个对象中年龄大于18的对象为例 1、先创建一个构造函数 function person(name,age){ this.name=name; this.age=age; } 2、这里根据构造函数创建多个对象,以作例子演示 var per1=new person("大... -
js遍历数组中对象时,返回第一个满足条件的对象
2020-08-08 18:44:03arr.find(item=>item.children) 返回数组中包含有children属性的对象 -
JAVA 8 lambda 表达式实现按某个属性值查找对象集合中符合条件的对象
2019-08-18 20:40:43JAVA 8 lambda 表达式实现按某个属性值查找对象集合中符合条件的对象 当前的需求是从数据库或者其他服务中获取到了一个对象集合,假设对象是Cart购物车,里面有product_id,product_name,count等。 需要从... -
EXCEL中的定位条件(含快速删除空行,定位图片、文本框等对象)
2022-04-07 19:25:21目录一、EXCEL 的定位条件是...有两个快捷键可以找到定位条件:Ctrl+G 和 F5,定位条件打开的界面如下: 二、定位条件各个选项的作用及示例 定位条件包括批注、常量、公式、空值、当前区域、当前数组、对象、行内容差 -
Java8 使用stream().filter()过滤List(查找符合条件的对象集合)
2022-01-18 13:57:34Java8 使用stream().filter()过滤List(查找符合条件的对象集合) 在Java8及以上版本中, 使用stream().filter()来过滤一个List对象,查找符合条件的对象集合。 代码实现 1.对象类 Teacher import java.time.LocalDate... -
js遍历数组中对象,返回满足条件对象在数组中的索引
2020-08-08 18:47:13arr.findIndex(item=>(item.children)) -
从对象数组中筛选符合条件的值
2019-05-28 10:46:22遍历当前数组中的键拿到另一个数组中包含相同键的...从当前数组中筛选符合条件的值 this . materialss = this . materials . filter ( item => item . categoryId === this . curTab . categoryId ) -
Js 递归查找数组中指定条件的一组对象;
2020-09-08 11:25:22需求:在多维数组中查找指定条件的对象,且取出该对象内容数据;数组数据格式如下: 实现:方法一: // 递归查找 getParentId(list, iid) { for(let o of list || []) { if(o.category_id == iid)... -
Java8 使用 stream().filter()过滤List对象(查找符合条件的对象集合)
2020-11-27 10:01:44本文主要说明在Java8及以上版本中,使用stream().filter()来过滤一个List对象,查找符合条件的对象集合。 List对象类(StudentInfo) public class StudentInfo implements Comparable<StudentInfo> { //... -
在list中筛选出符合条件的数据(返回具体对象)
2020-02-10 20:00:26List<FinanceCommissionDownRecordInfo> downRecordList = downSettlementRecordService.queryDownRecordList(map); if(BaseUtil.listNotNull(downRecordList)) { FinanceCommissionDownRecordInfo downInfo.... -
js从数组对象中查找出全符合一个对象的对象
2021-02-20 16:35:04let price = null; goodsData.spec_data && goodsData.spec_data.some(item => { for (const key in specData) { if (Object.hasOwnProperty.call(specData, key)) { if (specData[key] !... -
JAVA 8 lambda 表达式实现按某个属性值查找集合中符合条件的所有对象并求和
2021-03-15 03:16:30java 8 lambda 表达式实现按某个属性值查找集合中符合条件的所有对象并求和1,先按照条件找到所有符合的对象,生成集合。2,把生成的集合进行单列求和。以上两步骤用lambda 表达式可以合并。定义对象:public class ... -
根据数组对象的某个属性值找到指定的元素
2018-08-10 10:46:37最近项目有个地址白名单弹窗显示的需求,如果用户选取的地址不在白名单内就弹窗提示客户。...以下是白名单(数组对象): cityList = [ { cityCode : "A350500000" , pr... -
js数组(找到第一个符合条件的元素)
2020-06-20 15:10:14找到第一个符合条件的元素/下标 const arr = [1, 2, 3, 4, 5] const findItem = arr.find(item => item === 3) // 返回子项 const findIndex = arr.findIndex(item => item === 3) // 返回子项的下标 以前用... -
lambda 表达式实现按某个属性值查找集合中符合条件的所有对象并求和
2019-06-29 20:39:381,先按照条件找到所有符合的对象,生成集合。 2,把生成的集合进行单列求和。 以上两步骤用lambda 表达式可以合并。 定义对象: public class Cart { // 商品id private Integer id; // 商品所属分类 ... -
list stream:通过filter和findAny查找List中满足条件的某一个对象
2020-04-24 00:20:29//如果满足条件的对象存在 User user = userList.stream().filter(t -> 1 == t.getId()).findAny().get(); System.out.println("have: " + user.toString()); //如果对象不存在,则会抛出异常:java.util.... -
java面向对象
2018-08-21 16:51:59包括面向对象概念、类与对象的关系、封装、构造函数、this关键字、static关键字、单例设计模式、继承、多态、内部类、异常、包等java基础知识。 1、面向对象 面向对象是相对面向过程而言 面向对象和面向过程都是... -
JS 根据key查找对象数组中符合的一项 返回对象(递归)
2020-12-02 14:55:32在一个复杂的数组对象数据中(嵌套多层),通过key值返回对应的对象,在网上搜到的,感觉挺好用的,也没有多深入研究,直接拿来用了(捂脸) 1、代码 function parseJson(jsonObj, key, value) { // 循环所有键 let ... -
《C++面向对象程序设计》✍千处细节、万字总结(建议收藏)
2021-06-04 15:42:25文章目录《C++面向对象程序设计》✍千处细节、万字总结一、面向对象程序设计二、C++基础2.1 C++的产生和特点2.2 一个简单的C++示例程序2.3 C++在非面向对象方面对C语言的扩充输入和输出cinconst修饰符void型指针内联... -
JVM如何判断对象能否被回收
2019-12-16 16:11:57•对象的创建 •引用计数算法 •可达性分析算法 •引用 •不可达必须“死”? •最后 •写在前面 说起Java和C++,很容易想到让人疯狂的指针,Java使用了内存动态分配和垃圾回收技术,让我们从C++的各种指针... -
js对象数组根据某一属性查找对象
2021-06-10 21:05:39js对象数组[{name: "zhangsan", age: 20}, {name: "lisi", age: 30}], 如果想查找name是zhangsan的这个对象,传统方法可以根据for+if条件遍历,也可以用map重新构造,或者组装新对象。 1. 组装新对象 list.forEach... -
CAD如何快速选择对象
2020-12-22 04:52:20在CAD中,使用快速选择命令可以帮助我们快速筛选CAD中的对应图形,提高使用工具:迅捷CAD编辑器标准版步骤1,启动迅捷CAD编辑器,打开需要编辑的步骤2,切换到【编辑器】界面,找到【选择】工具栏。步骤3,选择工具... -
笔记:递归寻找满足条件key 并且返回对应的值
2022-02-11 11:19:03for (let i in array) { // 条件成立时刻 if (array[i].value == areaId) { re= array[i].label; break; } if (array[i].children instanceof Array && array[i].children.length > 0) { //存在子节点就递归 const ...
收藏数
505,638
精华内容
202,255