我目前正在編寫一個Java程序,它將值顯示到AreaChart
中,並且爲此我有一個名爲dataList
的ArrayList,其類型爲AreaChartPair
。Java - 如何避免此重複代碼
每個AreaChartPair
包含一個X軸(字符串)值和一個Y軸(整數)值。
X軸是日期,Y軸是一個計數器,因爲所有數據都是從文件中讀取的,日期將是未排序的順序。我用這個功能來對它們進行排序:
dataList.sort(Comparator.comparing(AreaChartPair::getXAxisStringValue));
這是沒有完全解決我的問題,因爲它只會比前幾個字母數字字符(即02.09.2030
會來01.01.2000
後,因爲02
自帶01
後)
爲了解決這個問題,我根本扭轉的日期從dd.mm.yyyy
到yyyy.mm.dd
,整理與上面的功能列表,之後逆轉的字符串返回dd.mm.yyyy
我現在的問題是我怎麼能簡化的代碼塊,因爲它是重複的:
//replaces the current data with the reversed string
for (int index = 0; index < dataList.size(); index++) {
dataList.set(index, new AreaChartPair(model.reverseDate(dataList.get(index).getXAxisStringValue()),
dataList.get(index).getYAxisIntegerValue()));
}
//sorts the data
dataList.sort(Comparator.comparing(AreaChartPair::getXAxisStringValue));
//reverses the string back to normal, so it can be displayed
for (int index = 0; index < dataList.size(); index++) {
dataList.set(index, new AreaChartPair(model.reverseDate(dataList.get(index).getXAxisStringValue()),
dataList.get(index).getYAxisIntegerValue()));
}
有什麼建議?
創建一個自定義的比較器,做反向比較? – RobAu