java實用小技巧——巧用最大值
阿新 • • 發佈:2019-01-02
1、前言
日常開發中,我們會碰到各種各樣的問題,如果每個問題都能找到合適有效的方法解決,一定會做到事半功倍的效果!
比如這裡我要說的最大值。下面我們通過一個例子表現一下
2、題目
假如有如下幾個省以及其對應下面的市區進行評選空氣質量等級
要求該省每個市區PM指數相加總和≤50分並且該省的每個市區PM指數≤10分,判定該省空氣質量為優,
每個市區PM指數相加總和≤60分並且每個市區PM指數≤15分,判定該省空氣質量為良,其他為一般
安徽下的五個市區PM指數分別為(10、12、8、9、6)
江蘇下的五個市區PM指數分別為(9、6、10、8、9)
浙江下的五個市區PM指數分別為(12、9、13、10、9)
大家可以先試著敲一下如果這裡沒有用最大值會不會進入for迴圈誤區~
下面是使用最大值的用法
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
int[] anhui = new int[]{10 ,12,8,9,6};
int[] jiangsu = new int[]{9,6,10,8,9};
int[] zhejiang = new int[]{12,9,13,10,9};
//以安徽為例
int type = getResult(anhui);
switch (type) {
case 0:
Log.i("TAG", "該省空氣質量為優!");
break;
case 1:
Log.i("TAG", "該省空氣質量為良!" );
break;
case 2:
Log.i("TAG", "該省空氣質量為一般!");
break;
}
}
public int getResult(int[] pms) {
int total = 0;
int max = -1;
for (int i = 0; i < pms.length; i++) {
total += pms[i];
if (max < pms[i]) {
max = pms[i];
}
}
if (total <= 50) {
if (max <= 10) {
return 0;
}
} else if (total <= 60) {
if (max <= 15) {
return 1;
}
}
return 2;
}
}
OK~!有沒有很簡潔方便!避免了在for迴圈里加繁瑣的邏輯判斷。