以下都是在实际开发中遇到的情形:
- 场景1:需要遍历一个list,判断对象中的某个元素的属性值等于某值时,给另一属性设置值。
private List<GxscStScDicSave> init(List<GxscStScDicSave> saves){
List<GxscStScDicSave> temp = saves;
//这里判断假如某个元素中的编码值等于CYZW_13,则设置另外属性值为1
temp.stream().forEach(x->{if (StringUtils.equals("CYZW_13", x.getDicCode())) {x.setIsCheck("1");}});
return temp;
}
- 场景2:使用Lambda表达式,定义一个线程:
public static void main(String[] args) {
Runnable r = ()->{System.out.println(1);};
r.run();
}
定义一个比较器:
// 其实都是对匿名内部类的简化
public static void main(String[] args) {
Comparable<Integer> comparable2 = (x) -> Integer.compare(x, 100);
comparable2.compareTo(2);
}
- 场景3:使用stream过滤一个list,获取符合条件的,
// 数据库查询某列表
List<GxscStScNode> nodes = gxscStScNodeSaveServiceImpl.selectByAjbhAndAjlb(ajbh, ajlb);
// 这里是获取了实体中某一属性值以_JXJG结尾的实体
List<GxscStScNode> collect = nodes.stream().filter(x->x.getNodeCode().endsWith("_JXJG")).collect(Collectors.toList());
网友评论