2016-12-03 8 views
2

Here、誰かがPythonでワン・ライナーforループを作った。Java one liner for loop

別の例は、これです:

このコードのワンライナーであろう
someList = [f(i) for i in range(16)] 

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

又は、Javaで:fであること

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

よう整数を返す関数

ここでJavaに相当するone-linerはありますか?

注:現在、私はJavaと同様のProcessingを使用しているため、Javaで書かれたコードはすべてProcessingで使用可能かもしれません。

+0

あなたはJavaで配列に追加することはできません。 'ArrayList'を使うか、単純に' int [] someList = new int [16] 'という配列を作成して、ループ内で' someList [i] = f(i) 'を実行してください。 – Andreas

+1

これは1行に必要な理由はありますか?私はあなたが短くて読みやすくするべきだと主張したいと思います。 'for'ループ解は理解しやすいです。なぜそれにこだわるだけではないのですか? –

答えて

10

のJava 8のIntStream救助へ:

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

@TimBiegeleisen元のリストはOPが空で、必然的に定義されているようです。元の1ライナーOPがエミュレートしようとする新しいリスト/配列を作成します。 'someList = [f(i)for i in range(16)]' – Mureinik