Java中的Math.max()方法,一个例子

本文详细介绍了Java中Math.max()方法的使用,包括其功能、参数和返回值,并通过示例展示了如何利用该方法找出数组中连续升序或降序的最长子序列长度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java.lang.Math.max(参数1,参数2)是一个静态的工具方法

贴上jdk里面的源代码

    /**
	* Returns the greater of two {@code int} values. That is, the
	*返回两个{代码INT}值的较大值。也就是说,
	* result is the argument closer to the value of
	*结果是更接近价值的论点
	* {@link Integer#MAX_VALUE}. If the arguments have the same value,
	*{Link整数×Max值}。如果参数具有相同的值,
	* the result is that same value.		*结果是相同的值。
	*
	*
	* @param   a   an argument.
	*PARAM A的一个起点。
	* @param   b   another argument.
	*PARAM B的另一个起点。
	* @return  the larger of {@code a} and {@code b}.
	*@返回较大的{@代码A}和{@代码B}。
	*/
    public static int max(int a, int b) {
        return (a >= b) ? a : b;
    }

与数值比较运算不同,该方法认为负 0 严格小于正 0。如果一个参数为正 0,另一个参数为负 0,那么结果为正 0。 

其实可以直接理解成 a >= b 就返回a,否则就返回b

下面是示例:

找出连续升序的最长的长度和降序的最长长度(也就是目前最长的长度)

public class Demo {
	public static void main(String[] args) {
		int[] arr = { 11,12,13,14,15,16,17,18,31,2,13,313,123,3};
		int[] arra = { 10,9,8,7,6,5,4,3,2,1,3,4,6,7,8,2,6,2,6,2};
		int longest = getMaxLength(arr);
		int length = getMinLength(arra);
		System.out.println("升序最长的长度:"+longest);
		System.out.println("降序最长的长度:"+length);

	}
	
	/**
	 * 找出连续升序最长的长度
	 * @param arr 数组
	 * @return 长度
	 */
	public static int getMaxLength(int[] arr){
		int len = 1;	//长度初始化为1
		int longest = 0;	//连续最长的长度
		for (int i = 0; i < arr.length; i++) {
			//判断下一个数是否是本身加一
			if (i + 1 < arr.length && arr[i] + 1 == arr[i + 1]) {
				len++;	//有就自增
				longest = Math.max(longest, len);
			} else {
				len = 1;	//没有则初始化成1
			}
		}
		return longest;	//返回长度
	}
	
	/**
	 * 找出连续降序最长的长度
	 * @param arra 数组
	 * @return	长度
	 */
	public static int getMinLength(int[] arra){
		int len = 1;	//长度初始化为1
		int longest = 0;	//连续最长的长度
		for (int i = 0; i < arra.length; i++) {
			//判断下一个数是否是本身减一
			if (i + 1 < arra.length && arra[i] - 1 == arra[i + 1]) {
				len++;	//有就自增
				longest = Math.max(longest, len);
			} else {
				len = 1;	//没有则初始化成1
			}
		}
		return longest;	//返回长度
	}
}

控制台输出结果:

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值