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; //返回长度
}
}
控制台输出结果: