Java 8 Stream API实战案例解析

原创 清疚 2024-11-08 01:06 148阅读 0赞

Java8引入的 Stream API 提供了一种高级迭代器,允许我们以声明式方式处理数据集合。以下是一些实战案例,展示如何使用 Java8 Stream API来处理集合数据。

1.基本过滤和映射假设我们有一个 ListPerson 对象,我们想要找出所有年龄大于18 的人,并获取他们的名字。

```javaimport java.util.List;
import java.util.stream.Collectors;

public class StreamExample {
public static void main(String[] args) {
List people = Arrays.asList(
new Person(“Alice”,22),
new Person(“Bob”,17),
new Person(“Charlie”,25)
);

List names = people.stream()
.filter(person -> person.getAge() >18)
.map(Person::getName)
.collect(Collectors.toList());

names.forEach(System.out::println);
}
}

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 int getAge() {
return age;
}
}
``###2.求和计算一个List` 中所有数字的总和。

```javaimport java.util.Arrays;
import java.util.List;

public class StreamExample {
public static void main(String[] args) {
List numbers = Arrays.asList(1,2,3,4,5);

int sum = numbers.stream()
.reduce(0, (a, b) -> a + b);

System.out.println(“Sum: “ + sum);
}
}
``###3.去重从List` 中去除重复的元素。

```javaimport java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class StreamExample {
public static void main(String[] args) {
List numbers = Arrays.asList(1,2,2,3,4,4,5);

List uniqueNumbers = numbers.stream()
.distinct()
.collect(Collectors.toList());

uniqueNumbers.forEach(System.out::println);
}
}
``###4.排序对List` 中的元素进行排序。

```javaimport java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class StreamExample {
public static void main(String[] args) {
List numbers = Arrays.asList(5,3,4,2,1);

List sortedNumbers = numbers.stream()
.sorted()
.collect(Collectors.toList());

sortedNumbers.forEach(System.out::println);
}
}
```###5.组合多个操作组合过滤、映射和收集操作。

```javaimport java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class StreamExample {
public static void main(String[] args) {
List people = Arrays.asList(
new Person(“Alice”,22),
new Person(“Bob”,17),
new Person(“Charlie”,25)
);

List names = people.stream()
.filter(person -> person.getAge() >20)
.map(Person::getName)
.sorted()
.collect(Collectors.toList());

names.forEach(System.out::println);
}
}
```这些案例展示了如何使用 Java8 Stream API来处理集合数据,包括过滤、映射、求和、去重和排序等操作。通过这些实战案例,你可以更好地理解 Stream API 的强大功能和灵活性。

文章版权声明:注明蒲公英云原创文章,转载或复制请以超链接形式并注明出处。

发表评论

表情:
评论列表 (有 0 条评论,148人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Java 8 Stream API 实战案例

    在Java 8中,引入了Stream API,它提供了一种处理集合和其他可迭代数据结构的新方式。以下是一些实战案例: 1. **过滤**:根据某种条件筛选元素。 ```jav