ACM-JAVA获取数组中的最大(最小)值
本文最后更新于:December 8, 2021 pm
积土成山,风雨兴焉;积水成渊,蛟龙生焉;积善成德,而神明自得,圣心备焉。故不积跬步,无以至千里,不积小流无以成江海。齐骥一跃,不能十步,驽马十驾,功不在舍。面对悬崖峭壁,一百年也看不出一条裂缝来,但用斧凿,能进一寸进一寸,能进一尺进一尺,不断积累,飞跃必来,突破随之。
目录
今天遇到一道简单题,是有关山峰数组(山脉数组)的。题目链接
也不知道怎么滴。然后搜了一下java中是否有直接获取数组中最大最小值的这种方法,所以这篇博客就主要针对java中怎样获取数组中的最大最下值进行一下简单的总结整理。
1.排序
不说了,心累。
2.通过Array.stream方式
Arrays.stream(arr).min().getAsInt()和Arrays.stream(arr).max().getAsInt()。分别是用来获取数组arr中的最小值和最大值。
stream是JDK8新增的核心功能之一,使用它可以很方便的实现很多功能,如查找最大最小值等。
示例:
1 |
|
3.通过Collections类
Collections.min()和Collections.max()方法。分别用来获取数组中的最小值和最大值。
示例:
1 |
|
说明:
Collections.max();参数需要的是一个集合。
Arrays.asList();是将数组变成集合,返回的也是一个可变的集合。
示例2:
1 |
|
说明:
boxed()的作用就是将int类型的stream转成了Integer类型的Stream。
Collectors.toList()
是java8中的。
collect是一个终端操作,它接收的参数是将流中的元素累积到汇总结果的各种方式(称为收集器)。
预定义收集器包括将流元素归约和汇总到一个值,如下:
工厂方法 | 返回类型 | 用于 |
---|---|---|
toList | List |
把流中所有元素收集到List中 |
示例:List | ||
toSet | Set |
把流中所有元素收集到Set中,删除重复项 |
示例:Set | ||
toCollection | Collection |
把流中所有元素收集到给定的供应源创建的集合中 |
示例:ArrayList | ||
Counting | Long | 计算流中元素个数 |
示例:Long count=Menu.getMenus.stream().collect(counting); | ||
SummingInt | Integer | 对流中元素的一个整数属性求和 |
示例:Integer count=Menu.getMenus.stream().collect(summingInt(Menu::getCalories)) | ||
averagingInt | Double | 计算流中元素integer属性的平均值 |
示例:Double averaging=Menu.getMenus.stream().collect(averagingInt(Menu::getCalories)) | ||
Joining | String | 连接流中每个元素的toString方法生成的字符串 |
示例:String name=Menu.getMenus.stream().map(Menu::getName).collect(joining(“, ”)) | ||
maxBy | Optional |
一个包裹了流中按照给定比较器选出的最大元素的optional 如果为空返回的是Optional.empty() |
示例:Optional | ||
minBy | Optional |
一个包裹了流中按照给定比较器选出的最大元素的optional 如果为空返回的是Optional.empty() |
示例: Optional | ||
Reducing | 归约操作产生的类型 | 从一个作为累加器的初始值开始,利用binaryOperator与流中的元素逐个结合,从而将流归约为单个值 |
示例:int count=Menu.getMenus.stream().collect(reducing(0,Menu::getCalories,Integer::sum)); | ||
collectingAndThen | 转换函数返回的类型 | 包裹另一个转换器,对其结果应用转换函数 |
示例:Int count=Menu.getMenus.stream().collect(collectingAndThen(toList(),List::size)) | ||
groupingBy | Map<K,List |
根据流中元素的某个值对流中的元素进行分组,并将属性值做为结果map的键 |
示例:Map<Type,List | ||
partitioningBy | Map<Boolean,List |
根据流中每个元素应用谓语的结果来对项目进行分区 |
示例:Map<Boolean,List |
本文作者: 墨水记忆
本文链接: https://tothefor.com/DragonOne/1926660320.html
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!