天天看点

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

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;	//返回长度
	}
}
           

控制台输出结果:

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