【问题标题】:Java - making an array using for loopJava - 使用 for 循环创建数组
【发布时间】:2015-05-25 10:49:22
【问题描述】:

是否可以在Java中以类似于此的样式制作数组,我已经搜索了一段时间并没有找到任何东西。

int[] foo = {
    for(String arg:args)
        return Integer.parseInt(arg);
};

【问题讨论】:

    标签: java arrays for-loop


    【解决方案1】:

    不,但您可以这样做:

    int[] foo = new int[args.length];
    for(int i = 0; i < foo.length; i++) {
        foo[i] = Integer.parseInt(args[i]);
    }
    

    【讨论】:

    • 我写了同样的答案。对不起,我不知道你已经发布了。也许我当时正在写。
    • @Cutchy 不客气(看起来你刚刚获得了足够的代表投票:))
    • 我之前学过 Python,Java 中的一切对我来说似乎都太长了:P
    【解决方案2】:

    不完全是,但试试这个。

    int[] foo = new int[args.length]; //Allocate the memory for foo first.
    for (int i = 0; i < args.length; ++i)
        foo[i] = Integer.parseInt(args[i]);
    //One by one parse each element of the array.
    

    【讨论】:

      【解决方案3】:

      使用 Java 8,可以这样做:

      int[] foo = Stream.of(args).mapToInt(str -> Integer.parseInt(str)).toArray();
      

      【讨论】:

        【解决方案4】:

        有点...从 Java 8 开始,我们有了可以模拟循环并允许我们执行类似操作的流

        int[] arr = Arrays.stream(args).mapToInt(s -> Integer.parseInt(s)).toArray();
        

        或使用method references的等效项

        int[] arr = Arrays.stream(args).mapToInt(Integer::parseInt).toArray();
        

        【讨论】:

          【解决方案5】:
          int[] foo = new int[arg.length];
          for (int i =0;i<args.length;i++) foo[i]=Integer.parseInt(args[i]);
          

          【讨论】:

          • 这是唯一的方法吗?
          【解决方案6】:

          没有数组,但你可以用List做类似的事情:

          final String args[] = {"123", "456", "789"};
          
          List<Integer> list = new LinkedList<Integer>(){
              {
                  for (String arg: args){
                      add(Integer.parseInt(arg));
                  }
              }
          };
          
          System.out.println(list); // [123, 456, 789]
          

          使用数组,您必须执行以下操作:

          int[] foo = new int[args.length];
          for (int i = 0; i < foo.length; i ++) {
              foo[i] = Integer.parseInt(args[i]);
          }
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2013-04-30
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-05-08
            相关资源
            最近更新 更多