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]