Ortanca 3 değeri elde etmek için bir yönteme ihtiyacım vardı, çünkü gerçekten pratik yapmadığım için genel bir yöntem yazmak için iyi bir fırsat olduğunu düşündüm. Bunu yazdım ve bir uyarı alsam da oldukça düz görünüyor, ama testlerime göre iyi çalışıyor gibi görünüyor.3 Değerin medyanını bulmak için Jenerik Metot
Doğası gereği sıralanmış bir kümeyi veya Collections.sort()
kullanabileceğimin farkındayım, ancak bu yaklaşım anlamaya yöneliktir.
bir kaç şey kesin olarak belirlemek istiyorum:
bu ben bu yüzdenArrays.asList(a, b, c)
ile
medianHelper
ilan etmeye çalışması halinde çalışmaz fark
- ? Bunu aramaya çalışmak ilgisiz sonuçlar veriyor ve ne olduğundan emin olmadığımdan başka bir şekilde zor. Ben bir
UnsupportedOperationException
aldım, ancak bu aşağıda sahip olduğum şekilde mevcut değil. - Neden bir uyarı alıyorum? Yanlış/eksik nedir?
yöntem aşağıdaki gibidir:
private static <T extends Comparable> T median(T a, T b, T c) {
List<T> medianHelper = new ArrayList<>();
T max;
T min;
medianHelper.add(a);
medianHelper.add(b);
medianHelper.add(c);
if (a.compareTo(b) >= 0) {
max = a;
min = b;
} else {
max = b;
min = a;
}
if (max.compareTo(c) == -1) {
max = c;
}
if (min.compareTo(c) >= 0) {
min = c;
}
medianHelper.remove(max);
medianHelper.remove(min);
return medianHelper.get(0);
}
Hangi uyarıları alıyorsunuz? – benzonico