首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我只想在数组列表中添加和打印6个项目

我只想在数组列表中添加和打印6个项目
EN

Stack Overflow用户
提问于 2019-05-04 08:55:32
回答 2查看 72关注 0票数 0

如果今天是星期一,它的编号是2。我需要在数组列表中添加下5个工作日,其中不应该包括星期日(假日)。我刚开始学习编码,我正在学习第九标准。请帮我编码。谢谢你进来!

代码语言:javascript
复制
 public class WeekView {
 public static void main(String args[]) {
     List<Integer> daysList = new ArrayList<>();
     int m = 6, dayOfWeek = 6;
     for (int i = 1; i <= m; i++) {
         if (dayOfWeek == 1) {
             daysList.add(dayOfWeek);
             dayOfWeek++;
         } else if (dayOfWeek == 2) {
             daysList.add(dayOfWeek);
             dayOfWeek++;
         } else if (dayOfWeek == 3) {
             daysList.add(dayOfWeek);
             dayOfWeek++;
         } else if (dayOfWeek == 4) {
             daysList.add(dayOfWeek);
             dayOfWeek++;
         } else if (dayOfWeek == 5) {
             daysList.add(dayOfWeek);
             dayOfWeek++;
         } else if (dayOfWeek == 6) {
             daysList.add(dayOfWeek);
             for (int j = 1; j < dayOfWeek; j++) {
                 daysList.add(j);
             }
         }
     }
     System.out.println("Day Num :" + daysList);
 } }

我现在的输出是

代码语言:javascript
复制
Day Num :[6, 1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5]

但我需要如下所示的输出

代码语言:javascript
复制
  6,1,2,3,4,5
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-05-04 09:24:56

代码语言:javascript
复制
List<Integer> daysList = new ArrayList<>();
int day = 6;

for (int i = 0; i < 6; i++) {
    daysList.add(day);
    day++;
    if(day > 6) day = 1;
}

System.out.println("Day Num :" + daysList);

其中:

  • i迭代工作日数。
  • 将当前日期添加到列表中的daysList.add(day)
  • days++到第二天的每一个循环迭代
  • if(day > 6) day = 1将回到周一,如果day到达周日
票数 3
EN

Stack Overflow用户

发布于 2019-05-04 15:18:45

您不必在增量的同时添加到day,您可以使用模数运算符来删除if检查。喜欢,

代码语言:javascript
复制
int day = 6;
List<Integer> daysList = new ArrayList<>();
for (int i = 0; i < 6; i++) {
    daysList.add(1 + ((day + i - 1) % 6));
}
System.out.println("Day Num :" + daysList);

或者在Java 8+中使用IntStream生成以下值

代码语言:javascript
复制
int day = 6;
List<Integer> daysList = IntStream.range(0, 6).map(i -> 1 + ((day + i - 1) % 6)).boxed()
        .collect(Collectors.toList());
System.out.println("Day Num :" + daysList);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55980971

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档