java8 中的stream filter map 组合使用能很好的代替for 循环去处理逻辑,而且代码简单明了
public static void main(String[] args) { List<A> alist = new ArrayList<>(); alist.add(new A(1, "路飞")); alist.add(new A(6, "路飞")); alist.add(new A(2, "娜美")); alist.add(new A(3, "乔巴")); alist.add(new A(4, "乌索普")); alist.add(new A(5, "索罗")); // 获取第一个符合条件的对象 Optional<A> first = alist.stream().filter(a -> "路飞".equals(a.getName())).findFirst(); if (first.isPresent()) { A a = first.get(); System.out.println(a.getName()); System.out.println(a.getAge()); } // 获取符合条件的集合 List<A> collect = alist.stream().filter(a -> "路飞".equals(a.getName())).collect(Collectors.toList()); System.out.println(collect.size()); // 获取符合条件的对象的属性 List<Integer> ageList = alist.stream().map(A::getAge).collect(Collectors.toList()); System.out.println(ageList); }
运行结果: