简体   繁体   English

Java - 使用for循环创建数组

[英]Java - making an array using for loop

Is it possible in Java to make an array in a style similar to this, i have been searching for a while and haven't found anything. 在Java中是否有可能以类似于此的样式创建数组,我一直在搜索并找不到任何东西。

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

No, but you can do this instead : 不,但你可以这样做:

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

Not exactly, but try this. 不完全是,但试试这个。

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.

使用Java 8,它可以这样做:

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

Kind of... Since Java 8 we have streams which can simulate loop and allow us to do things like ...从Java 8开始,我们有了可以模拟循环的流,并允许我们做类似的事情

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

or its equivalent using method references 或使用方法参考的等价物

int[] arr = Arrays.stream(args).mapToInt(Integer::parseInt).toArray();
int[] foo = new int[arg.length];
for (int i =0;i<args.length;i++) foo[i]=Integer.parseInt(args[i]);

With array no, but you can do something similar with List : 对于数组号,但你可以用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]

With array you have to do the following: 使用数组,您必须执行以下操作:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM