说这是用于存储月份的数组,
String months[] = {"January", "February", "March", "April",
"May", "June", "July", "August", "September",
"October", "November", "December"};
Run Code Online (Sandbox Code Playgroud)
我用这种方法来获得当前月份
int monthName=calendar.get(Calendar.MONTH);
Run Code Online (Sandbox Code Playgroud)
从当前月份开始,将数组重新排序为新数组或arraylist的最佳方法是什么.
例如:当前月份是八月,所以所需的阵列或Arraylist将是
months[] = {"August", "September", "October", "November",
"December", "January", "February", "March", "April",
"May", "June", "July"};
Run Code Online (Sandbox Code Playgroud)
对于那些很快或以后想要使用java 8做同样事情的人来说,这只是另一种选择:)
List<Month> myMonth = Arrays.asList(Month.values());
Collections.rotate(myMonth, 1 - LocalDate.now().getMonthValue());
Run Code Online (Sandbox Code Playgroud)
输出:
[8月,9月,10月,11月,12月,1月,2月,3月,4月,5月,6月,7月]
您可以使用Collections.rotate.要向左旋转,您可以使用元素的负值.
String months[] = {"January", "February", "March", "April",
"May", "June", "July", "August", "September",
"October", "November", "December"};
int monthIndex = LocalDate.now().getMonth().ordinal();//indexed from 0
Collections.rotate(Arrays.asList(months), -monthIndex); //negative value rotates to left
System.out.println(Arrays.toString(months));
Run Code Online (Sandbox Code Playgroud)
输出: [August, September, October, November, December, January, February, March, April, May, June, July]
使用Java 8 Month.values(),和Collections.rotate():
int monthOffset = LocalDate.now().getMonth().getValue() - 1;
List<Month> months = Arrays.asList(Month.values());
Collections.rotate(months, -monthOffset);
System.out.println(months);
Run Code Online (Sandbox Code Playgroud)
打印:
[AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER, JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY]
Run Code Online (Sandbox Code Playgroud)