In: Computer Science
USE JAVA
Write a static generic method PairUtil.minmax that computes the minimum and maximum elements of an array of type T and returns a pair containing the minimum and maximum value. Require that the array elements implement the Measurable interface of Chapter 10.
import javafx.util.Pair;
public class PairUtil {
public static <T extends Measurable> Pair<T, T> minmax(T[] arr) {
T min = arr[0], max = arr[0];
for (int i = 0; i < arr.length; i++) {
if (arr[i].getMeasure() > max.getMeasure()) {
max = arr[i];
}
if (arr[i].getMeasure() < min.getMeasure()) {
min = arr[i];
}
}
return new Pair<>(min, max);
}
public static void main(String[] args) {
Measurable[] arr = {
new Measurable() {
@Override
public double getMeasure() {
return 10;
}
},
new Measurable() {
@Override
public double getMeasure() {
return 2;
}
},
new Measurable() {
@Override
public double getMeasure() {
return 7;
}
},
new Measurable() {
@Override
public double getMeasure() {
return 9;
}
},
};
Pair<Measurable, Measurable> pair = minmax(arr);
System.out.println("Min: " + pair.getKey().getMeasure());
System.out.println("Max: " + pair.getValue().getMeasure());
}
}
