Tôi cần một phương pháp để có được trung bình 3 giá trị, tôi nghĩ đây là cơ hội tốt để viết một phương pháp chung vì tôi không thực sự có thực hành đó. Tôi đã viết điều này và nó có vẻ khá thẳng về phía trước, mặc dù tôi nhận được một cảnh báo, nhưng nó có vẻ làm việc tốt, theo các bài kiểm tra của tôi.Phương pháp chung để tìm giá trị trung bình của 3 giá trị
Tôi biết rằng tôi có thể sử dụng tập hợp được sắp xếp vốn có hoặc Collections.sort()
, nhưng cách tiếp cận này là để hiểu.
Tôi muốn xác định một vài điều:
- Tôi nhận thấy điều này không làm việc nếu tôi cố gắng tuyên bố
medianHelper
vớiArrays.asList(a, b, c)
tại sao điều này? Cố gắng tìm kiếm điều này mang lại cho tôi những kết quả không liên quan và nó khó nắm bắt được vì tôi không chắc điều gì đang xảy ra. Tôi nhận được mộtUnsupportedOperationException
, nhưng đây không phải là cách tôi có nó dưới đây. - Tại sao tôi nhận được cảnh báo? Điều gì là sai/mất tích?
Phương pháp sau:
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);
}
Bạn nhận được cảnh báo nào? – benzonico