阿里巴巴能拿货在家里做的网站,濮阳建设公司网站,.net 网站开发架构,北京互联网公司待遇排名JAVA 使用stream流将List中的对象某一属性创建新的List
1.stream流介绍
Java Stream是Java 8引入的一种新机制#xff0c;它可以让我们以声明式方式操作集合数据#xff0c;提供了更加简洁、优雅的集合处理方式。Stream是一个来自数据源的元素队列#xff0c;并支持聚合操…JAVA 使用stream流将List中的对象某一属性创建新的List
1.stream流介绍
Java Stream是Java 8引入的一种新机制它可以让我们以声明式方式操作集合数据提供了更加简洁、优雅的集合处理方式。Stream是一个来自数据源的元素队列并支持聚合操作。它的特点有
Stream 不会修改原始数据源。Stream 操作是延迟执行的。Stream 操作可以是无限的比如用于生成随机数的操作。
2.Stream基础用法
1.创建Stream 可以使用Stream.of()方法从一组元素创建Stream例如
StreamInteger stream Stream.of(1, 2, 3, 4, 5);也可以使用集合的stream()方法或parallelStream()方法创建Stream
ListInteger list Arrays.asList(1, 2, 3, 4, 5);
StreamInteger stream1 list.stream(); // 顺序流
StreamInteger stream2 list.parallelStream(); // 并行流2.过滤 可以使用filter()方法过滤Stream中的元素例如
StreamInteger stream Stream.of(1, 2, 3, 4, 5);
StreamInteger filteredStream stream.filter(x - x % 2 0); // 过滤偶数3.映射 可以使用map()方法将Stream中的元素映射为另一种类型例如
StreamString stream Stream.of(apple, banana, orange);
StreamInteger lengthStream stream.map(String::length); // 映射为字符串长度4.排序 可以使用sorted()方法对Stream中的元素进行排序例如
StreamInteger stream Stream.of(3, 1, 4, 1, 5, 9);
StreamInteger sortedStream stream.sorted(); // 默认升序排序5.去重 可以使用distinct()方法去除Stream中的重复元素例如
StreamInteger stream Stream.of(1, 2, 3, 2, 1);
StreamInteger uniqueStream stream.distinct(); // 去重6.统计 可以使用count()方法统计Stream中的元素数量例如
StreamInteger stream Stream.of(1, 2, 3, 4, 5);
long count stream.count(); // 统计元素数量3.具体用法
经常在业务处理时 我们需要将某个对象list中元素对象的某一属性放在一个新的list 里面在Java的Stream API中你可以使用map操作来将List中的元素的某一属性提取出来并组成一个新的List。 示例代码
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;class Person {private String name;private int age;public Person(String name, int age) {this.name name;this.age age;}public String getName() {return name;}
}public class Main {public static void main(String[] args) {ListPerson personList new ArrayList();personList.add(new Person(Alice, 25));personList.add(new Person(Bob, 30));personList.add(new Person(Charlie, 35));ListString namesList personList.stream().map(Person::getName).collect(Collectors.toList());System.out.println(namesList); // 输出[Alice, Bob, Charlie]}
}
例子中我们有一个Person类它具有name和age属性。我们创建了一个包含多个Person对象的List。然后我们使用Stream API对List进行操作。得到了一个name的新List