1循环对比
循环对比的核心是定义一个最大值,然后循环对比每一个元素,如果元素的值大于最大值就将最大值更新为此元素的值,再进行下一次比较,直到循环结束就能得到最大值
int max=arr[0];
for (int i = 0; i < arr.length; i++) {
if (arr[i]>max) {
max = arr[i];
}
}
2 Arrays.sort 方法
使用 Arrays.sort
方法可以将数组从小到大进行排序,排序完成之后,取最后一位的值就是最大值
Arrays.sort(arr);
int max=arr[arr.length-1];
3 Arrays.stream 方法 (JDK 8以上版本)
stream
是 JDK 8 新增的核心功能之一,使用它我们可以很方便的实现很多功能,比如查找最大值、最小值等
public static void main(String[] args) {
int[] arr= {53,3,542,748,14,214};
int max = findMaxByStream(arr); // 根据 stream 查找最大值
System.out.println("最大值是:" + max);
}
/**
* 根据 stream 查找最大值
* @param arr 待查询数组
* @return 最大值
*/
private static int findMaxByStream(int[] arr) {
return Arrays.stream(arr).max().getAsInt();
}
4 Collections.max 方法
使用 Collections
集合工具类也可以查找最大值和最小值,但使用之前我们要将数组(Array)转换成集合(List)
可以使用Arrays.asList()方法,下面这种创建方式创建的集合,后续是不能添加数据的,因为alList返回的是ArrayList,是Array的内部类,调用add()方法时会报错
int[] arr= {53,3,542,748,14,214};
List list = Arrays.asList(arr);
解决:重新构建一个新的ArrayList
int[] arr= {53,3,542,748,14,214};
List list = new ArrayList<>(Arrays.asList(arr));
Collections.addAll(集合,数组)方法,将集合存储到数组中
int[] arr= {53,3,542,748,14,214};
List list = new ArrayList();
Collections.addAll(list,arr);
取最大值:
System.out.println(Collections.max(list));