2016-12-03 46 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