lambda表达式分类
2024-09-01 08:12:09
public class StreamTest {
public static void main(String[] args) {
createStream();
getForEach();
getMap();
getFilter();
getLimit();
getSorted();
getParallel();
getCollectors();
getStatistics();
getSumAll();
} /**
* 1.生成Stream
*/
public static void createStream(){
System.out.println("-------------------->>>>>>>>>>生成Stream");
List<String> strings = Arrays.asList("abc", "", "bc", "efg", "abcd", "", "jkl");
List<String> filtered = strings.stream().filter(string -> !string.isEmpty()).collect(Collectors.toList());
filtered.forEach(System.out::println);
} /**
* 2.forEach
*/
public static void getForEach(){
System.out.println("-------------------->>>>>>>>>>forEach");
Random random = new Random();
random.ints().limit(10).forEach(System.out::println);
} /**
* 3.map
*/
public static void getMap(){
System.out.println("-------------------->>>>>>>>>>map");
List<Integer> numbers = Arrays.asList(3, 2, 2, 3, 7, 3, 5);
// 获取对应的平方数
List<Integer> squaresList = numbers.stream().map(i -> i * i).distinct().collect(Collectors.toList());
squaresList.forEach(System.out::println);
} /**
* 4.filter
*/
public static void getFilter(){
System.out.println("-------------------->>>>>>>>>>filter");
List<String>strings = Arrays.asList("abc", "", "bc", "efg", "abcd","", "jkl");
// 获取空字符串的数量
int count = (int) strings.stream().filter(string -> string.isEmpty()).count();
System.out.println("空字符串的数量: "+count);
} /**
* 5.limit
*/
public static void getLimit(){
System.out.println("-------------------->>>>>>>>>>limit");
Random random = new Random();
random.ints().limit(10).forEach(System.out::println);
} /**
* 6.sorted
*/
public static void getSorted(){
System.out.println("-------------------->>>>>>>>>>sorted");
Random random = new Random();
random.ints().limit(10).sorted().forEach(System.out::println);
} /**
* 7.并行(parallel)程序
*/
public static void getParallel(){
System.out.println("-------------------->>>>>>>>>>parallel");
List<String> strings = Arrays.asList("abc", "", "bc", "efg", "abcd", "", "jkl");
// 获取空字符串的数量
int count = (int) strings.parallelStream().filter(string -> string.isEmpty()).count();
System.out.println("parallel: " + count);
} /**
* 8.Collectors
*/
public static void getCollectors(){
System.out.println("-------------------->>>>>>>>>>Collectors");
List<String> list = Arrays.asList("abc", "", "bc", "efg", "abcd", "", "jkl");
List<String> filtered = list.stream().filter(string -> !string.isEmpty()).collect(Collectors.toList());
System.out.println("筛选列表: " + filtered);
String mergedString = list.stream().filter(string -> !string.isEmpty()).collect(Collectors.joining(", "));
System.out.println("合并字符串: " + mergedString);
} /**
* 9.统计Statistics
*/
public static void getStatistics(){
System.out.println("-------------------->>>>>>>>>>Statistics");
List<Integer> numbers = Arrays.asList(3, 2, 2, 3, 7, 3, 5);
IntSummaryStatistics stats = numbers.stream().mapToInt((x) -> x).summaryStatistics();
System.out.println("列表中最大的数 : " + stats.getMax());
System.out.println("列表中最小的数 : " + stats.getMin());
System.out.println("所有数之和 : " + stats.getSum());
System.out.println("平均数 : " + stats.getAverage());
} /**
* 10.求和集合某个属性
*/
public static void getSumAll(){
System.out.println("-------------------->>>>>>>>>>Statistics");
List<GsonFormatModel> numbers = new ArrayList<>();
GsonFormatModel gsonFormatModel = new GsonFormatModel();
gsonFormatModel.setFrom(111);
numbers.add(gsonFormatModel);
GsonFormatModel gsonFormatModel1 = new GsonFormatModel();
gsonFormatModel1.setFrom(999);
numbers.add(gsonFormatModel1);
int stats = numbers.stream().mapToInt(GsonFormatModel::getFrom).sum();
System.out.println("所有数之和 : " + stats);
} }
最新文章
- (转) Awesome Deep Learning
- vs2013 控制台程序exe图标
- 转来的。。。 关于return 的一些事情
- update select
- 【转】Xcode重构功能怎么用我全告诉你
- (转载)最黑的黑客米特尼克:多次耍FBI 终被高手擒
- 使用hbase的api创建表时出现的异常
- Oracle EBS-SQL (INV-11):检查子库存会计信息.sql
- php强制下载文件并显示原始文件名
- anroid平台指纹方案
- 小程序——阿里服务器配置https及什么是IIS
- 浏览器UI多线程及JavaScript单线程运行机制的理解
- python并发编程之多进程2-------------数据共享及进程池和回调函数
- 53.CSS---CSS水平垂直居中常见方法总结
- RN Component生命周期函数
- iOS UI-团购案例(通过xib文件自定义UITableViewCell)
- Spring Boot 官方文档学习(二)特点
- java 面试大全
- Win7 SP1 下安装 VS2015 Update 3
- 【Linux】Linux 找回Root用户密码
热门文章
- c#实现深拷贝的几种方法
- 实现ssr服务端渲染demo
- (二十)c#Winform自定义控件-有后退的窗体
- Python机器学习之数据探索可视化库yellowbrick-tutorial
- windows安装nginx、mysql等软件并加入系统服务启动详细
- 逻辑回归(Logistic Regression)详解,公式推导及代码实现
- cookie、session和application都是些什么神?——图文加案例,不怕你不会,就怕你不看
- JavaScript数组方法大全(第二篇)
- Spring源码剖析2:Spring IOC容器的加载过程
- 图解Java数据结构之队列