2016-09-18 1 views
0

を保存:Javaの書き込み、私はsimmilarファッションにループになる生成コードを持っているため

//loop to write header for b (0-5) 

(for int a = 0; a <5 ;a++){ 
    //System.out.print(a + "| "); 
    IntStream.range(b = 0, 5).parallel().forEach(b -> { 
     int result = a*b; 
    //System.out.print(result + " "); 
    }); 
    System.out.println(""); 
) 

は、これは私の試みでした。コメントされたシステムは、基本的に私が必要としていたことを行いました。このようなことを得るにはどうすればいいですか?数字のランダムな順序の行の代わりに?

0 | 0 0 0 0 0 
1 | 0 1 2 3 4 
2 | 0 2 4 6 8 
.... 
+0

並列処理と保存順序を使用する場合は、通常の方法で処理しないでください。あなたがそうするなら、あなたは並列性のあらゆる利点を失うことになるでしょう。 – Shadov

+0

結果は、実際には別の方法では計算が非常に複雑です。私が必要とする原則はここと同じで、このようにして結果をより速く得ることができます(単にforループの代わりにintintを使います)。ここでの唯一の問題は、結果を正しい順序で書くことです。 – user3338991

+1

'b'の値に基づいて結果を保存し、リストを作って' list.set(b、result) 'を実行しましょうが、あなたは待たなければなりませんすべての結果が完了してから印刷されます。 – Shadov

答えて

0

まず、問題は並列処理に適した問題ではありません。並列処理が提供するオーバーヘッドは、あなたの合計を同時に実行することによって得られる節約をはるかに上回ります。

つまり、toArrayのようなものを使って合計を配列に折りたたんだり、各要素を配列に印刷したりすることが考えられます。

関連する問題