2016-12-03 126 views
2

Here,有人在Python中做了一个单线程for循环。Java单线程循环

又如是这样的:

someList = [f(i) for i in range(16)] 

这将是一个班轮此代码:

someList = [] 
for i in range(16): 
    someList.append(f(i)) 

,或者在Java中:

int[] someList = {} 
for (int i = 0; i < 16; i++) { 
    someList = append(someList, f(i)); 
} 

使得f是一些将返回一个整数的函数。

现在,在Java中是否有一个等价的单线程?

注意:目前,我正在使用Processing,它类似于Java,所以任何使用Java编写的代码都可能在Processing中使用。

+0

不能追加到Java中的数组。使用'ArrayList'或简单地创建正确大小的数组:'int [] someList = new int [16]'然后在循环中执行'someList [i] = f(i)'。 – Andreas

+1

你是否有理由在一行中需要这个?我认为你应该偏爱可读性而不是简短。 for循环解决方案很容易理解。为什么不坚持呢? –

回答

10

的Java 8的IntStream救援:

int[] someList = IntStream.range(0, 16).map(i -> f(i)).toArray(); 
+2

@TimBiegeleisen原始列表是OP是空的,似乎只是被定义为必需。原始的单线程OP试图模拟创建一个新的列表/数组:'someList = [f(i)for i in range(16)]' – Mureinik