安全な私はList<int[]>
持っていると私はこのように試してみましたint[][]
のJava変換リストは[] int型[]の配列に - 同時
に変換したいと思います:
private List<int[]> pos = new LinkedList<>();
...
public int[][] getPos() {
int[][] ret = new int[pos.size()][2];
int i = 0;
for (Object o : pos) {
ret[i] = Arrays.stream((int[]) o).toArray();
i++;
}
return ret;
}
私の場合の大きな問題は、他のスレッドが変換中にリストを変更していることです。だから私はforeachの上にConcurrentModificationException
を得ます。
Streamsのようにこれを行う他の方法はありますか?それは安全です。
よろしく
事前にリストのローカルコピーを作成してください。これはスレッドを使用する方法です。 – grochmal
同期またはロックを考慮してください。 –