我目前正在编写一个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