Java - 使用for循环创建数组

时间:2015-03-22 10:50:00

标签: java arrays for-loop

在Java中是否可以使用与此类似的样式创建数组,我一直在搜索并找不到任何内容。

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

6 个答案:

答案 0 :(得分:3)

不,但你可以这样做:

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

答案 1 :(得分: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.

答案 2 :(得分:2)

使用Java 8,可以这样做:

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

答案 3 :(得分:2)

有点......从Java 8开始,我们就拥有可以模拟循环的流,并允许我们执行

之类的操作
int[] arr = Arrays.stream(args).mapToInt(s -> Integer.parseInt(s)).toArray();

或使用method references

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

答案 4 :(得分:1)

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

答案 5 :(得分:1)

使用数组号,但您可以使用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]);
}