public class Demo {
private Integer id;
private Integer num;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getNum() {
return num;
}
public void setNum(Integer num) {
this.num = num;
}
@Override
public String toString() {
return "Demo{" +
"id=" + id +
", num=" + num +
'}';
}
public Demo(Integer id, Integer num) {
this.id = id;
this.num = num;
}
}
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
public class test03 {
public static void main(String[] args) {
List<Demo> list = new ArrayList<>();
list.add(new Demo(1,1));
list.add(new Demo(1,3));
list.add(new Demo(2,2));
list.add(new Demo(3,2));
list.add(new Demo(3,8));
//统计集合中符合条件的数据数量
long count = list.stream().filter(s -> s.getId() == 1).count();
//统计集合中符合条件的数据
List<Demo> demoList = list.stream().filter(s -> s.getNum() == 2).collect(Collectors.toList());
//统计集合中符合条件的第一条数据
//Java 8 新特性 Optional 类是一个可以为null的容器对象
Optional<Demo> demo = list.stream().filter(s -> s.getNum() == 2).findFirst();
System.out.println(count);
System.out.println(demoList);
System.out.println(demo);
}
}
运行结果如下:


这篇博客展示了如何使用Java8的Stream API进行数据过滤、计数和查找操作。通过创建一个Demo对象列表,演示了对ID等于1的元素计数,查找所有数值为2的Demo对象,以及获取第一条数值为2的对象。这些示例展示了Stream API在处理集合数据时的高效和便捷。
3232

被折叠的 条评论
为什么被折叠?



