java8 .stream().anyMatch / allMatch / noneMatch用法,判断某元素是否在list中,或某集合中全部都是某元素,或是否不在list中,统计list元素
java8 stream接口终端操作 anyMatch,allMatch,noneMatch anyMatch:判断的条件里,任意一个元素成功,返回true
allMatch:判断条件里的元素,所有的都是,返回true
noneMatch:与allMatch相反,判断条件里的元素,所有的都不是,返回true
count方法,跟List接口中的 .size() 一样,返回的都是这个集合流的元素的长度,不同的是,流是集合的一个高级工厂,中间操作是工厂里的每一道工序,我们对这个流操作完成后,可以进行元素的数量的和;
如: public static void main(String[] args) { List<Integer> list = Arrays.asList(1, 2, 1, 1, 1); boolean anyMatch = list.stream().anyMatch(f -> f == (1)); boolean allMatch = list.stream().allMatch(f -> f == (1)); boolean noneMatch = list.stream().noneMatch(f -> f == (1)); long count = list.stream().filter(f -> f == (1)).count(); System.out.println(anyMatch); // true System.out.println(allMatch); // false System.out.println(noneMatch); // false System.out.println(count); // 4 }
其中判断条件可修改:
boolean anyMatch = list.stream().anyMatch(f -> f.equals(1));
1.判断是否存在某个值
//判断集合list中username是否存在张三这个值,存在返回true boolean bool = list.stream().anyMatch(a->a.getUserName().equals("张三"));
2.过滤list中某个实体类的某个元素值
//过滤集合list中含有username为张三的值,结果集为过滤后的集合(全是包含张三的对象) List<Userinfo> data = list.stream().filter(a->a.getUserName().equals("张三")) .collect(Collectors.toList()); if(data!=null&&data.size()>0){ for (Userinfo userinfo:data) { System.out.println(userinfo.getUserName()+"------------"+userinfo.getPassword()); } }
3.替换list中某个实体类的某个元素值 Bean bean1 = new Bean(1, 2); Bean bean2 = new Bean(3, 4); List<Bean> list = Lists.newArrayList(bean1, bean2); System.out.println("list1 : " + list); list.stream().filter(bean -> { if (1 == bean.getNum1()) bean.setNum1(2); return true; }).collect(Collectors.toList()); System.out.println("list2 : " + list);
4.收集集合中某个元素的值并逗号分割成字符串
String productIds=crmProductList.stream().map(p->p.getId()).collect(Collectors.joining(","));
相关文章
- java集合源码分析(二):List与AbstractList
- fastjson的json字符串转List
- java list去重_JAVA基础-List去重的6种方式[通俗易懂]
- 前端json字符串转json对象_list对象转json
- Java集合List接口详解——含源码分析
- Java集合中List,Set以及Map(三者的区别,什么时候用Set,Connection接口)
- ORA-29879: cannot create multiple domain indexes on a column list using same indextype ORACLE 报错 故障修复 远程处理
- ORA-12648: Encryption or data integrity algorithm list empty ORACLE 报错 故障修复 远程处理
- ORA-13777: invalid list of attribute names ORACLE 报错 故障修复 远程处理
- ORA-14302: only one list of added-LOB-storage-clauses can be specified in a statement ORACLE 报错 故障修复 远程处理
- java判断集合list是为空详解编程语言
- List集合分组实现教程详解编程语言
- LIST-PROCESSING用法 ABAP任意时刻进行List输出_SAP详解编程语言
- Hibernate Criteria接口 list方法:返回一个List集合
- List头文件助力Linux内核开发(list.hlinux)
- 利用Redis构建新的List存储方式(redis存储list)
- Redis如何清空List:技巧分享(redis清空list)
- 结构使用Redis List结构实现快速操作(redis中list)
- 使用Redis在List中存储数据(redis存入list)
- Mysql实现List存储的技巧(mysql存储list)
- 使用Redis轻松获取List数据(获取redis中list)
- Oracle中使用List命令查看表结构(list命令oracle)
- 简单快速修改Redis List技巧(修改redis的list)
- 利用Redis List实现强大的数据存储(使用redis list)
- 如何快速将List写入Redis(向redis写入list)
- Redis List实现的双向链表功能(redis里面的list)
- Redis中List实现快速数据查找(redis 选择list)
- Redis自带数据结构List(redis自带list)
- Redis灵活的List储存功能(redis能储存list)
- datagrid绑定list没有数据表头不显示的解决方法