我想整理几个月,并且只会在图表中显示6个月的数据。 数据将是 [2016年10月,2016年11月,2016年12月,2016年1月,2016年2月,2016年3月]。
答案 0 :(得分:-1)
使用Java 8及更高版本中内置的YearMonth
类。它代表一年零一个月,并且知道如何在实施compareTo
Comparable
方法后进行排序。
您可以使用SortedMap
收集数据,每个YearMonth
作为关键字,将数据集合收集为Map
值。
YearMonth start = YearMonth.of( 2016 , 10 ); // Months numbered 1-12 for January-December.
YearMonth stop = start.plusMonths( 7 ); // Half-Open approach, beginning is inclusive while ending is exclusive.
SortedMap< YearMonth , List<MyData> > ymToDataMap = new TreeMap<>();
…
YearMonth ym = YearMonth.of( 2016 , 10 ) ;
MyData myData = … ;
ymToDataMap.put( ym , myData ) ;
添加YearMonth
作为键时,会自动为您保留时间顺序。您可以循环此SortedMap
以导出某些图表库的数据。您可以将月份名称导出为字符串。
通过以下方式生成字符串:
toString
对象YearMonth
getYear
对象上的YearMonth
和getDisplayName
中调用Month
。String output = ym.getMonth().getDisplayName( TextStyle.SHORT , Locale.US ) + " " + ym.yetYear() ;
format
方法并传递DateTimeFormatter
对象。搜索Stack Overflow以获取有关这些主题的更多信息。