iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Java如何查找数组中最大值
  • 365
分享到

Java如何查找数组中最大值

2023-06-27 10:06:28 365人浏览 独家记忆
摘要

这篇“Java如何查找数组中最大值”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Java如何查找数组中最大值”文章吧。方式一

这篇“Java如何查找数组中最大值”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Java如何查找数组中最大值”文章吧。

方式一:循环对比

从上图可以看出,循环对比的核心是定义一个最大值,然后循环对比每一个元素,如果元素的值大于最大值就将最大值更新为此元素的值,再进行下一次比较,直到循环结束我们就能找到最大值了,实现代码如下:

public class ArrayMaxTest {    public static void main(String[] args) {        int[] arr = {3, 7, 2, 1, -4};        int max = findMaxByFor(arr); // 查找最大值        System.out.println("最大值是:" + max);    }        private static int findMaxByFor(int[] arr) {        int max = 0; // 最大值        for (int item : arr) {            if (item > max) { // 当前值大于最大值,赋值为最大值                max = item;            }        }        return max;    }}

以上程序的执行结果为:

最大值是:7

方式二:递归对比

递归对比的核心是先定义两个位置(起始位置和结束位置),每次对比开始位置和结束位置值的大小,当开始位置的值大于结束位置值时,将最大值设置为开始位置的值,然后将结束位置 -1(往前移动一位),继续递归调用;相反,当结束位置的值大于开始位置时,将最大值设置为结束位置的值,将开始位置 +1(往后移动一位),继续递归调用对比,直到递归结束就可以返回最大值了,

实现代码如下:

public class ArrayMax {    public static void main(String[] args) {        int[] arr = {3, 7, 2, 1, -4};        int max = findMaxByRecursive(arr, 0, arr.length - 1, 0); // 根据 Collections 查找最大值        System.out.println("最大值是:" + max);    }        private static int findMaxByRecursive(int[] arr, int head, int last, int max) {        if (head == last) {            // 递归完了,返回结果            return max;        } else {            if (arr[head] > arr[last]) {                max = arr[head]; // 赋最大值                // 从后往前移动递归                return findMaxByRecursive(arr, head, last - 1, max);            } else {                max = arr[last]; // 赋最大值                // 从前往后移动递归                return findMaxByRecursive(arr, head + 1, last, max);            }        }    }}

以上程序的执行结果为:

最大值是:7

方式三:依赖 Arrays.sort() 实现

根据 Arrays.sort 方法可以将数组从小到大进行排序,排序完成之后,取最后一位的值就是最大值了,实现代码如下:

import java.util.Arrays;public class ArrayMax {    public static void main(String[] args) {        int[] arr = {3, 7, 2, 1, -4};        int max = findMaxBySort(arr); // 根据 Arrays.sort 查找最大值        System.out.println("最大值是:" + max);    }        private static int findMaxBySort(int[] arr) {        Arrays.sort(arr);        return arr[arr.length - 1];    }}

以上程序的执行结果为:

最大值是:7

方式四:根据 Arrays.stream() 实现

streamjdk 8 新增的核心功能之一,使用它我们可以很方便的实现很多功能,比如查找最大值、最小值等,实现代码如下:

import java.util.Arrays;public class ArrayMax {    public static void main(String[] args) {        int[] arr = {3, 7, 2, 1, -4};        int max = findMaxByStream(arr); // 根据 stream 查找最大值        System.out.println("最大值是:" + max);    }        private static int findMaxByStream(int[] arr) {        return Arrays.stream(arr).max().getAsInt();    }}

以上程序的执行结果为:

最大值是:7

方式五:依赖 Collections.max() 实现

使用 Collections 集合工具类也可以查找最大值和最小值,但在使用之前我们想要将数组(Array)转换成集合(List),实现代码如下:

import org.apache.commons.lang3.ArrayUtils;import java.util.Arrays;import java.util.Collections;public class ArrayMax {    public static void main(String[] args) {        int[] arr = {3, 7, 2, 1, -4};        int max = findMaxByCollections(arr); // 根据 Collections 查找最大值        System.out.println("最大值是:" + max);    }        private static int findMaxByCollections(int[] arr) {        List<Integer> list = Arrays.asList(                org.apache.commons.lang3.ArrayUtils.toObject(arr));        return Collections.max(list);    }}

以上程序的执行结果为:

最大值是:7

扩展知识:Arrays.sort 方法执行原理

为了搞明白 Arrays#sort 方法执行的原理,我们查看了源码发现 sort 方法的核心是通过循环进行排序的,源码如下:

for (int i = left, j = i; i < right; j = ++i) { int ai = a[i + 1]; while (ai < a[j]) {  a[j + 1] = a[j];  if (j-- == left) {   break;  } } a[j + 1] = ai;}

以上就是关于“Java如何查找数组中最大值”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网精选频道。

--结束END--

本文标题: Java如何查找数组中最大值

本文链接: https://www.lsjlt.com/news/309764.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java如何查找数组中最大值
    这篇“Java如何查找数组中最大值”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Java如何查找数组中最大值”文章吧。方式一...
    99+
    2023-06-27
  • JavaScript如何找出数组的最大值和最小值
    这篇文章将为大家详细讲解有关JavaScript如何找出数组的最大值和最小值,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。找出数组的最大值和最小值可以使用for循环遍历数组的每个值,从而找到最大值或最小值...
    99+
    2023-06-27
  • java如何找数组中的最大元素
    这篇文章将为大家详细讲解有关java如何找数组中的最大元素 ,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。找数组中的最大元素 public static int m...
    99+
    2023-06-27
  • 使用JavaScript怎么遍历查找数组中最大值与最小值
    本篇文章给大家分享的是有关使用JavaScript怎么遍历查找数组中最大值与最小值,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。具体如下:&l...
    99+
    2024-04-02
  • js如何查找json数据中的最大值和最小值方法
    目录js查找json数据中的最大值和最小值使用Math对象来获取最大值和最小值使用for循环来获取最大值和最小值获取最大值和最小值返回对应的json数据用reduce()获取JSON...
    99+
    2023-05-16
    js查找json数据 查找json数据最大值 查找json数据最小值
  • js如何查找最高或最低的数组值
    小编给大家分享一下js如何查找最高或最低的数组值,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!查找最高或最低的数组值JavaSc...
    99+
    2024-04-02
  • Java如何通过循环对比查找最大值
    这篇文章将为大家详细讲解有关Java如何通过循环对比查找最大值,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。循环对比循环对比的执行流程如下图所示:从上图可以看出,循环对比...
    99+
    2024-04-02
  • Java如何通过递归对比查找最大值
    这篇文章主要介绍了Java如何通过递归对比查找最大值,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。递归对比递归对比的核心是先定义两个位置(起...
    99+
    2024-04-02
  • php如何求数组中最大值
    这篇“php如何求数组中最大值”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“php如何求数组中最大值”文章吧。php中的ma...
    99+
    2023-07-04
  • Java查找 List 中的最大最小值实例演示
    以下实例演示了如何使用 Collections 类的 max() 和 min() 方法来获取List中最大最小值:import java.util.*;public class Main { public static void main...
    99+
    2023-05-31
    java list值 ava
  • php怎样找到数组中的最大值
    在 PHP 开发中,经常需要查找数组中的最大值。一般的做法是循环遍历整个数组来比较各个元素的值,但这样做可能会很耗费时间,特别是当数组长度很长时。为了更有效率地找到数组中的最大值,PHP 提供了两个函数 max() 和 array_redu...
    99+
    2023-05-19
  • vb怎么找出数组中的最大值
    要找出数组中的最大值,可以使用循环遍历数组,比较每个元素的大小,记录下最大的值。可以使用以下代码来实现:```vbDim array...
    99+
    2023-10-12
    vb
  • php如何求数组中的最大值
    在php中利用for循环求出数组中的最大值,具体方法如下:首先,新建一个php项目文件;php项目文件新建好后,在文件中定义一个数组,并将数组赋值给一个变量;$arr = array(1,5,6,8,9);$max = $arr[0];最后...
    99+
    2024-04-02
  • es6如何求数组最大值
    这篇文章主要介绍了es6如何求数组最大值的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇es6如何求数组最大值文章都会有所收获,下面我们一起来看看吧。求数组最大值的方法:1、Math.max()配合apply()...
    99+
    2023-07-04
  • javascript如何求数组最大值
    这篇文章主要介绍javascript如何求数组最大值,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! javascript求数组最大值的方法:1、声明一个保...
    99+
    2024-04-02
  • JavaScript如何从数组中获取最大值和最小值
    小编给大家分享一下JavaScript如何从数组中获取最大值和最小值,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!从数组中获取最...
    99+
    2024-04-02
  • JavaScript中二叉树如何实现查找最小值、最大值、给定值算法
    小编给大家分享一下JavaScript中二叉树如何实现查找最小值、最大值、给定值算法,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!具体如下:function Node(data,...
    99+
    2024-04-02
  • javascript如何实现数组最大值和最小值
    小编给大家分享一下javascript如何实现数组最大值和最小值,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!给定一个数组[1,8,5,4,3,9,2],编写一个...
    99+
    2023-06-15
  • mysql如何查找最小值
    要查找表中某列的最小值,可以使用以下查询语句: SELECT MIN(column_name) FROM table_nam...
    99+
    2024-04-09
    mysql
  • 如何求php数组的最大值和最小值
    这篇文章主要介绍“如何求php数组的最大值和最小值”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“如何求php数组的最大值和最小值”文章能帮助大家解决问题。两种方法:1、用“max(数组)”语句获取最...
    99+
    2023-06-30
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作