In: Computer Science
Make the Measurable interface from Chapter 10 into a generic class. Provide a static method that returns the largest element of an ArrayList, provided that the elements are instances of Measurable. Be sure to return a value of type T.
Measurable interface:
public interface Measurable {
double getMeasure();
}
Using JAVA please
import java.util.ArrayList;
import java.util.Arrays;
public class LargestMeasurable {
public static <T extends Measurable> T max(ArrayList<T> list) {
if (list == null || list.isEmpty())
return null;
T largest = list.get(0);
for (int i = 0; i < list.size(); i++) {
if (list.get(i).getMeasure() > largest.getMeasure()) {
largest = list.get(i);
}
}
return largest;
}
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;
}
},
};
System.out.println(max(new ArrayList<>(Arrays.asList(arr))).getMeasure());
}
}
