Java 8 Stream API实战案例解析
Java8引入的 Stream API 提供了一种高级迭代器,允许我们以声明式方式处理数据集合。以下是一些实战案例,展示如何使用 Java8 Stream API来处理集合数据。
1.基本过滤和映射假设我们有一个 List
的 Person
对象,我们想要找出所有年龄大于18 的人,并获取他们的名字。
```javaimport java.util.List;
import java.util.stream.Collectors;
public class StreamExample {
public static void main(String[] args) {
List
new Person(“Alice”,22),
new Person(“Bob”,17),
new Person(“Charlie”,25)
);
List
.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
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
List
.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
List
.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
new Person(“Alice”,22),
new Person(“Bob”,17),
new Person(“Charlie”,25)
);
List
.filter(person -> person.getAge() >20)
.map(Person::getName)
.sorted()
.collect(Collectors.toList());
names.forEach(System.out::println);
}
}
```这些案例展示了如何使用 Java8 Stream API来处理集合数据,包括过滤、映射、求和、去重和排序等操作。通过这些实战案例,你可以更好地理解 Stream API 的强大功能和灵活性。
还没有评论,来说两句吧...