现在Java 8已经是各大oj的主流配置了吧,对stream的操作是我在打题时吃的最爽的新版糖。然而网上的Java题解本来就少,用stream来解题的….我是一个没看到。stream能找最大值最小值,还能排序,打起来也很爽。关于stream的性能可以看网上的各种测试,似乎跟环境有关系…有空多拿几个oj测一测。于是先挖个坑在这,慢慢填。
一、把数组转成流
用到java.util.Arrays包里的方法:
Arrays.stream(数组名)
简单易用,轻松搞定。
二、求最大最小值的操作
Arrays.stream(数组名).max()
stream自带求最大最小值的方法,max()和min(),可以方便的直接返回最值,然而这时候返回的仍然是流而不是基本数据类型,需要转换,也有自带方法能方便的完成(以int为例):
int max = Arrays.stream(数组名).max().getAsInt();
int min = Arrays.stream(数组名).min().getAsInt();
三、求和
也是方便的一行代码搞定,数组求和这个功能简直是千呼万唤始出来啊:
int sum = Arrays.stream(数组名).sum();
sum()方法直接返回的就是int值。
四、去重
Arrays.stream(数组名).distinct().toArray();