java - 查找数组中的最大值但必须小于某个值

标签 java

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说:

Returns the greatest element in this set strictly less than the given element, or null if there is no such element.

关于java - 查找数组中的最大值但必须小于某个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39511830/

相关文章:

java - 为什么 catch block 中的 Java return 语句不起作用?

java - 从 springBoot 应用程序中的子模块扫描包

java - 使用 Java 的 BigInteger 可能素数

JavaFx:TreeTableView 箭头引用

java - 提供静态内容 Jetty Jersey Gradle

java - JLabel文字乱码

java - Solace MQ - 如何检查目的地是否已启动

java - 我该如何返回这个接口(interface)呢?

java - 有没有办法可以制作一个 try-try-catch block ?

java - 根据匹配的键值合并java中的2个列表