-4

我正在开发一个 Java 软件项目,我想创建一个“瀑布”显示,我需要在屏幕底部绘制一行颜色编码的数据,然后将这些行向上“移动”为创建数据年龄和新行。在我看来,虽然可以创建行数据,然后通过表示显示区域的二维数组移动行数组,但这并不是一种非常有效的处理方式。

显然,如果我用 C 或 C++ 编写它,我会使用指针(和指针数组)。

我如何在 Java 中实现它?

4

2 回答 2

3

在任何情况下,Java 数组都不是真正的双向数组。它们是数组的数组。因此,您可以通过引用轻松地做到这一点:

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 有一个 LinkedList 类,它的工作方式就像 C 中的(双重)链表,只是以面向对象(TM)的方式。

请参阅:http
://docs.oracle.com/javase/6/docs/api/java/util/LinkedList.html 和:何时在 ArrayList 上使用 LinkedList?

于 2013-03-20T17:19:24.193 回答