Auf Thema antworten

Von mir gibt's nur noch Stream-Lösungen für sowas. :) Solltest dir Java 8 Streams definitiv mal angucken.

[code=java]/**

 * Liefert: [[kleinster, zweitkleinster], [zweitgrößter, größter]]

 */

public static Number[][] min2max2(Number[] numbers) {

  if (numbers.length < 2)

    throw new IllegalArgumentException();

  return new Number[][] {

    java.util.Arrays

      .stream(numbers).sorted().limit(2)

      .toArray(Number[]::new),

    java.util.Arrays

      .stream(numbers).sorted().skip(numbers.length - 2)

      .toArray(Number[]::new)

  };

}

public static void main(String[] args) {

  Number[] intNumbers = {5, 13, 2, 4, 1, 10};

  System.out.println(

      java.util.Arrays.deepToString(min2max2(intNumbers)));

  Number[] doubleNumbers = {5.2, 1.3, 2.4, 4.2, 1.1, 10.9};

  System.out.println(

      java.util.Arrays.deepToString(min2max2(doubleNumbers)));

}[/code]



Oben