有一個列表可以包含未定義數字的「A」,「B」,「C」或「D」,我必須計算列表中的平均字母。有效的方法來獲取列表中的平均字符串
例如,具有[A,C]平均爲B.
這是我的方法:
public static String calculateAverage(final List<String> letters) {
int numberOfA = 0;
int numberOfB = 0;
int numberOfC = 0;
int numberOfD = 0;
for (String letter : letters) {
if (letter.equalsIgnoreCase("A")) {
numberOfA++;
}
if (letter.equalsIgnoreCase("B")) {
numberOfB++;
}
if (letter.equalsIgnoreCase("C")) {
numberOfC++;
}
numberOfD++;
}
int average =
(numberOfA * 1 + numberOfB * 2
+ numberOfC * 3 + numberOfD * 4)
/letters.size();
if (average>=1 && average<2) return "A";
if (average>=2 && average<3) return "B";
if (average>=3 && average<4) return "C";
return "D";
}
有沒有更有效的方式來做到這一點?
什麼是平均信?如果列表中包含'[A,C]'是答案'B'還是未定義? – Ferrybig
答案是B. – anonymous
'[A,D]'也是'B',但那是你想要的嗎? – cozyconemotel