java用Stream流拿出对应的元素案例
时间: 2024-03-02 10:50:03 浏览: 58
假设我们有一个List存储了一些Person对象,每个Person对象中都有一个name属性。现在我们需要从List中筛选出name属性为“Tom”的Person对象。可以使用Java 8中的Stream API来实现:
```
List<Person> personList = new ArrayList<>();
personList.add(new Person("Tom", 20));
personList.add(new Person("Jerry", 18));
personList.add(new Person("Tom", 25));
List<Person> tomList = personList.stream()
.filter(person -> "Tom".equals(person.getName()))
.collect(Collectors.toList());
tomList.forEach(System.out::println);
```
这段代码会输出List中name属性为“Tom”的Person对象。其中,filter方法用于筛选满足条件的元素,collect方法用于将筛选出的元素收集到一个新的List中。最后,我们使用forEach方法循环输出新的List中的元素。
在这个例子中,我们使用了lambda表达式来定义filter方法中的筛选条件。如果你不熟悉lambda表达式的用法,可以先学习一下它的基本语法和用法。
相关问题
通过Java stream流的方式对原集合进行操作得到新集合,对新集合元素进行修改,原集合对应元素会被修改吗
通过Java stream流的方式对原集合进行操作得到新集合,不会修改原集合的元素。Java stream是一种惰性求值的操作,它只会在终止操作时才会对集合进行操作,而且每次操作都会生成一个新的流,不会影响原来的集合。因此,对新集合元素的修改不会影响原来集合的元素。如果您想要修改原集合中的元素,可以使用其他方式,如foreach循环或迭代器等。
阅读全文