-4

私はJavaソフトウェアプロジェクトに取り組んでおり、「ウォーターフォール」ディスプレイを作成したいと考えています。このディスプレイでは、画面の下部に色分けされたデータの行を描画してから、その行を上に「移動」する必要があります。データの経過時間と新しい行が作成されます。行データを作成してから、表示領域を表す2D配列を介して行配列を移動することは可能ですが、これは非常に効率的な方法ではないように思われます。

明らかに、これをCまたはC ++で記述している場合は、ポインター(およびポインターの配列)を使用します。

これをJavaで実装するにはどうすればよいですか?

4

2 に答える 2

3

Javaの配列は、どのような場合でも実際の2次元配列ではありません。それらは配列の配列です。したがって、参照を通じて簡単に行うことができます。

public void foo() {
  int[][] data = new int[32][32];
  ...
  for (int i = 32; i > 0; --i)
    data[i-1] = data[i];
}

これは、C++で行う方法と多少似ています

public void foo() {
  int **data = new int*[32];
  for (int i = 0; i < 32; ++i)
    data[i] = new int[32];
  ...
  for (int i = 32; i > 0; --i)
    data[i-1] = data[i];
}
于 2013-03-20T15:35:21.233 に答える
1

Javaには、オブジェクト指向(TM)の方法でのみ、Cの(二重に)リンクされたリストのように機能するLinkedListクラスがあります。

参照:http
://docs.oracle.com/javase/6/docs/api/java/util/LinkedList.html および:ArrayListよりもLinkedListを使用する場合

于 2013-03-20T17:19:24.193 に答える