Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在一条语句中查找无序数组中最大(或最小)的元素,同时保持顺序_Java_Arrays_Algorithm - Fatal编程技术网

Java 在一条语句中查找无序数组中最大(或最小)的元素,同时保持顺序

Java 在一条语句中查找无序数组中最大(或最小)的元素,同时保持顺序,java,arrays,algorithm,Java,Arrays,Algorithm,我知道如何找到Java中最大和最小的元素: 对数组进行排序 使用for循环在数组上迭代并检查最小值 但是有没有一种方法可以检查一个语句中的最大值或最小值?此外,还需要维护秩序 条件: 同一类中没有方法调用 序列未排序,并且保持未排序状态 无法访问外部库(即不允许ArrayUtils) 假设这是一个普通Java数组,即int[],而不是ArrayList或LinkedList 示例: Integer arr[] = {7, 8, 1, 2, 6}; System.out.println(Colle

我知道如何找到Java中最大和最小的元素:

  • 对数组进行排序
  • 使用for循环在数组上迭代并检查最小值
  • 但是有没有一种方法可以检查一个语句中的最大值或最小值?此外,还需要维护秩序

    条件:

  • 同一类中没有方法调用
  • 序列未排序,并且保持未排序状态
  • 无法访问外部库(即不允许
    ArrayUtils
  • 假设这是一个普通Java数组,即
    int[]
    ,而不是
    ArrayList
    LinkedList

    示例:

    Integer arr[] = {7, 8, 1, 2, 6};
    System.out.println(Collections.min(Arrays.asList(arr)));
    System.out.println(Collections.max(Arrays.asList(arr)));
    
    1
    8
    
    输出:

    Integer arr[] = {7, 8, 1, 2, 6};
    System.out.println(Collections.min(Arrays.asList(arr)));
    System.out.println(Collections.max(Arrays.asList(arr)));
    
    1
    8
    

    如果必须使用
    int[]
    而不是
    Integer[]
    和建议的单语句约束,则可以使用函数将
    int[]
    转换为相应的包装类
    Integer[]
    。但是我不认为您会使用外部库。

    如果它是自然排序的,那么最大和最小的元素是first/last或last/first元素(取决于排序顺序),为什么要循环!?哦,对不起,它是未排序的(我在标题中添加了无序,但意思是未排序)。@user473973 RC的意思是:如果在步骤1中对数组进行排序,则不必循环,因为最小的元素是数组的第一个元素-排序通常就是这样做的!有点作弊,但由于
    asList()
    wrapps数组,它可能是允许的。为了提高性能,直接阵列访问将更快,因此请注意大型阵列。这不适用于
    int[]
    howeveryup,但OP需要在一条语句中执行操作。这里有一句话;):P