大家好,我是程序员影子
一名致力于帮助更多朋友快速入门编程的程序猿
今天来聊一聊关于Java 中的集合中正确使用Stream流
一、Stream的创建
Java 8 引入了Stream API,它可以让你以一种声明的方式处理数据。Stream可以由集合创建,使用stream()
方法。
import java.util.Arrays;
import java.util.List;
import java.util.stream.Stream;
public class StreamCreation {
public static void main(String[] args) {
List<String> list = Arrays.asList("Apple", "Banana", "Cherry", "Date");
Stream<String> stream = list.stream();
stream.forEach(System.out::println); // 输出集合中的每个元素
}
}
二、使用Filter进行过滤
filter
方法用于通过设置的条件过滤出元素。
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class StreamFilter {
public static void main(String[] args) {
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
List<Integer> evenNumbers = list.stream()
.filter(n -> n % 2 == 0)
.collect(Collectors.toList());
System.out.println(evenNumbers); // 输出[2, 4, 6, 8, 10]
}
}
三、使用Map进行转换
map
方法用于通过给定的函数转换每个元素。
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class StreamMap {
public static void main(String[] args) {
List<String> list = Arrays.asList("Apple", "Banana", "Cherry");
List<String> upperCaseFruits = list.stream()
.map(String::toUpperCase)
.collect(Collectors.toList());
System.out.println(upperCaseFruits); // 输出[APPLE, BANANA, CHERRY]
}
}
四、使用Reduce进行归约操作
reduce
方法用于组合流中的多个元素。
import java.util.Arrays;
import java.util.List;
public class StreamReduce {
public static void main(String[] args) {
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
int sum = list.stream().reduce(0, Integer::sum);
System.out.println(sum); // 输出15
}
}
五、使用Collectors进行收集
Collectors
类提供了各种收集器实现,用于将流转换为集合。
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class StreamCollect {
public static void main(String[] args) {
List<String> list = Arrays.asList("Apple", "Banana", "Cherry", "Date");
String mergedString = list.stream()
.collect(Collectors.joining(", "));
System.out.println(mergedString); // 输出Apple, Banana, Cherry, Date
}
}
以上就是本次分享的所有内容,感兴趣的朋友点个关注呀,感谢大家啦~
更多Java | AI+编程玩法 的相关资料和源码请移步至公众号:程序员影子