Wypisanie maksymalnej i minimalnej wartości dla obiektów typu String i Integer z listy.
public class MinMax<T extends Comparable<T>> {
private T max;
private T min;
public MinMax(T max, T min) {
this.max = max;
this.min = min;
}
public T getMax() {
return max;
}
public T getMin() {
return min;
}
@Override
public String toString() {
return "MinMax{" +
"max=" + max +
", min=" + min +
'}';
}
}
public class MinMaxService {
public static void main(String[] args) {
List<Double> doubleList = List.of(2.2, 545.88888, 1.2, -2222.2, 59.36);
List<Integer> integerList = List.of(18888, 2, 3, 4, 5, 6, -2, -129, -2, 5, 222, 124);
List<String> stringList = List.of("Jaaaaa", "Ta", "Jac", "Szym", "Olaaa", "U");
System.out.println(getMinAndMax(doubleList));
System.out.println(getMinAndMax(integerList));
System.out.println(getMinAndMax(stringList));
}
public static <T extends Comparable> MinMax<?> getMinAndMax(List<T> arr){
if (arr == null || arr.size()==0){
return null;
}
T min = arr.get(0);
T max = arr.get(0);
for (T t : arr) {
if (t.compareTo(min) < 0) {
min = t;
}
if (t.compareTo(max) > 0) {
max = t;
}
}
return new MinMax<>(max,min);
}
}
Mógłby mi ktoś wytłumaczyć jak stworzyć prawidłowo metodę statyczną getMinAndMax ? (Tak żebym zrozumiał) Dla Integerów wypisuje dobrze min i max. Dla Stringa na odwrót...