java刷题时使用stream流简化一些代码(一)
前言;我们接下来将用三行代码分别求出一个数组的元素的最大值、最小值以及元素的和
求数组中的最大值和最小值
一般思路:
/*
* 求数组最大值最小值
* @author xiaozhu
* @date 2022/5/8 12:07
* @param nums
* @return java.util.Map<java.lang.String,java.lang.Integer>
*/
public Map<String, Integer> getMaxAndMin(int[] nums){
Map<String, Integer> map = new HashMap<>();
int max = Integer.MIN_VALUE;
int min = Integer.MAX_VALUE;
for(int num : nums){
if(num > max){
max = num;
}
if(num < min){
min = num;
}
}
map.put("max", max);
map.put("min", min);
return map;
}
使用stream流
//求数组中的最大值
//意思是将nums数组转化为stream流然后得到流中的最大值,最后再以int类型获取
int max = Arrays.stream(nums).max().getAsInt();
//求数组中的最小值
//意思是将nums数组转化为stream流然后得到流中的最小值,最后再以int类型获取
int min = Arrays.stream(nums).min().getAsInt();
//当然我们也可以
可以看到,我们仅仅用了两行代码就把数组中的最大值和最小值求出
求数组所有数的和
一般思路
/*
* 求数组的和
* @author xiaozhu
* @date 2022/5/8 12:33
* @param nums
* @return int
*/
public static int getSum(int[] nums){
int sum = 0;
for(int i = 0; i < nums.length; i++){
sum += nums[i];
}
return sum;
}
使用stream流
//nums为数组
int sum = Arrays.stream(nums).sum();
一行代码求数组中的和