精华内容
下载资源
问答
  • 怎么找到条件好的对象
    千次阅读
    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());
            
    	}
    	
    }
    更多相关内容
  • 测试代码 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);
        }
    
    1. 单纯使用stream流时,findany和findFirst效果都是一样的,返回6,因为都是从0开始递增的判断,所以结果都是6.
    2. 使用parallelStream流时,findAny和findFirst效果不一样了,因为findFirst时找到大于5的第一个,所以仍然是返回6,但是findAny返回的值是不固定的,只要大于6的成立就马上返回.

    总结

    不并行使用流时,两者效果一致。当并行使用时,如果只是想找到了就成立就使用findAny,否则采用findFirst.

    展开全文
  • 过滤出符合某些条件的数组 一、当条件为单个时 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"]]
    
    展开全文
  • var 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() 方法将匹配元素集合缩减为匹配指定选择器的元素.该方法不改变原数组,返回的是筛选后满足条件的数组.

    展开全文
  • 提要:这里以提取多个对象中年龄大于18的对象为例 1、先创建一个构造函数 function person(name,age){ this.name=name; this.age=age; } 2、这里根据构造函数创建多个对象,以作例子演示 var per1=new person("大...
  • arr.find(item=>item.children) 返回数组中包含有children属性的对象
  • JAVA 8 lambda 表达式实现按某个属性值查找对象集合中符合条件对象   当前的需求是从数据库或者其他服务中获取到了一个对象集合,假设对象是Cart购物车,里面有product_id,product_name,count等。  需要从...
  • 目录一、EXCEL 的定位条件是...有两个快捷键可以找到定位条件:Ctrl+G 和 F5,定位条件打开的界面如下: 二、定位条件各个选项的作用及示例 定位条件包括批注、常量、公式、空值、当前区域、当前数组、对象、行内容差
  • Java8 使用stream().filter()过滤List(查找符合条件对象集合) 在Java8及以上版本中, 使用stream().filter()来过滤一个List对象,查找符合条件对象集合。 代码实现 1.对象类 Teacher import java.time.LocalDate...
  • arr.findIndex(item=>(item.children))
  • 对象数组中筛选符合条件的值

    万次阅读 2019-05-28 10:46:22
    遍历当前数组中的键拿到另一个数组中包含相同键的...从当前数组中筛选符合条件的值 this . materialss = this . materials . filter ( item => item . categoryId === this . curTab . categoryId )
  • 需求:在多维数组中查找指定条件对象,且取出该对象内容数据;数组数据格式如下: 实现:方法一: // 递归查找 getParentId(list, iid) { for(let o of list || []) { if(o.category_id == iid)...
  • 本文主要说明在Java8及以上版本中,使用stream().filter()来过滤一个List对象,查找符合条件对象集合。 List对象类(StudentInfo) public class StudentInfo implements Comparable<StudentInfo> { //...
  • List<FinanceCommissionDownRecordInfo> downRecordList = downSettlementRecordService.queryDownRecordList(map); if(BaseUtil.listNotNull(downRecordList)) { FinanceCommissionDownRecordInfo downInfo....
  • let 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 表达式实现按某个属性值查找集合中符合条件的所有对象并求和1,先按照条件找到所有符合的对象,生成集合。2,把生成的集合进行单列求和。以上两步骤用lambda 表达式可以合并。定义对象:public class ...
  • 最近项目有个地址白名单弹窗显示的需求,如果用户选取的地址不在白名单内就弹窗提示客户。...以下是白名单(数组对象): cityList = [ { cityCode : &quot;A350500000&quot; , 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) // 返回子项的下标 以前用...
  • 1,先按照条件找到所有符合的对象,生成集合。 2,把生成的集合进行单列求和。 以上两步骤用lambda 表达式可以合并。 定义对象: public class Cart { // 商品id private Integer id; // 商品所属分类 ...
  • //如果满足条件对象存在 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、面向对象 面向对象是相对面向过程而言 面向对象和面向过程都是...
  • 在一个复杂的数组对象数据中(嵌套多层),通过key值返回对应的对象,在网上搜到的,感觉挺好用的,也没有多深入研究,直接拿来用了(捂脸) 1、代码 function parseJson(jsonObj, key, value) { // 循环所有键 let ...
  • 文章目录《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:39
    js对象数组[{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,选择工具...
  • for (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 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 505,638
精华内容 202,255
关键字:

怎么找到条件好的对象