大家好,我是程序员影子
一名致力于帮助更多朋友快速入门编程的程序猿
今天来聊一聊关于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+编程玩法 的相关资料和源码请移步至公众号:程序员影子