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

时间:2013-11-16 13:42:46

标签: java arrays algorithm

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

  1. 对数组进行排序
  2. 使用for循环迭代数组并检查最小值。
  3. 但有没有办法在一个陈述中检查最大或最小?此外,需要保留订单。

    条件:

    1. 在同一个班级中没有方法调用
    2. 序列未排序,仍未排序
    3. 不允许访问外部库(即不允许ArrayUtils)。
    4. 假设这是一个普通的Java数组,即int[],而不是ArrayList<T>LinkedList<T>

1 个答案:

答案 0 :(得分:2)

Integer arr[] = new Integer[50];
// fill the array with integers
Collections.min(Arrays.asList(arr));
Collections.max(Arrays.asList(arr));

示例:

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[]并建议使用一个语句约束,则可以使用ArrayUtils.toObject函数将int[]转换为相应的Integer[]包装类{{1}}。但我不认为你是在使用外部库之后。