以本地化顺序列出<DayOfWeek>

Bas*_*que 5 java dayofweek java.time

我们有一个DayOfWeek枚举,以标准的ISO 8601顺序定义星期几。

我想要List这些对象中的一个适合于的顺序Locale。

我们可以轻松地确定一周中第一天的区域设置。

Locale locale = Locale.CANADA_FRENCH ;
DayOfWeek firstDayOfWeek =  WeekFields.of( locale ).getFirstDayOfWeek() ;
Run Code Online (Sandbox Code Playgroud)

设置List。

List< DayOfWeek > dows = new ArrayList<>( 7 ) ;  // Set initial capacity to 7, for the seven days of the week.
dows.add( firstDayOfWeek ) ;
Run Code Online (Sandbox Code Playgroud)

?要将每周的其他六天添加到该列表中,最简单/最短/最优雅的方法是什么?

Kar*_*tik 9

您可以使用的plus方法DayOfWeek。

计算从星期天到星期一的一周结束时进行。

递增编号IntStream及其range方法(包括开始,排除结束)。

Locale locale = Locale.CANADA_FRENCH;
DayOfWeek firstDayOfWeek = WeekFields.of(locale).getFirstDayOfWeek();

List<DayOfWeek> dows = IntStream.range(0, 7)
        .mapToObj(firstDayOfWeek::plus)
        .collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)