int array[] = new int[]{10, 11, 88, 2, 12, 9};

public static int getMax(int[] inputArray){
  int maxValue = inputArray[0];

  for(int i=1;i < inputArray.length;i++){
     if(inputArray[i] > maxValue){
        maxValue = inputArray[i];
     }
  }
  return maxValue;
}


有什么办法可以找到最大值但小于数组中的88?

最佳答案

如果使用Integer,则可以使用TreeSet

Integer[] values = new Integer[]{10, 11, 88, 2, 12, 9};
NavigableSet<Integer> integers = new TreeSet<>(Arrays.asList(values));

System.out.println(integers.lower(88));
System.out.println(integers.lower(2));
System.out.println(integers.lower(100));


打印出来

12
null
88


NavigableSet.lower(E e)的Javadoc说:


  返回严格小于给定元素的该集合中最大的元素;如果没有这样的元素,则返回null。

10-08 13:41