我正在开发一个 Java 软件项目,我想创建一个“瀑布”显示,我需要在屏幕底部绘制一行颜色编码的数据,然后将这些行向上“移动”为创建数据年龄和新行。在我看来,虽然可以创建行数据,然后通过表示显示区域的二维数组移动行数组,但这并不是一种非常有效的处理方式。
显然,如果我用 C 或 C++ 编写它,我会使用指针(和指针数组)。
我如何在 Java 中实现它?
在任何情况下,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];
}
Java 有一个 LinkedList 类,它的工作方式就像 C 中的(双重)链表,只是以面向对象(TM)的方式。
请参阅:http
://docs.oracle.com/javase/6/docs/api/java/util/LinkedList.html
和:何时在 ArrayList 上使用 LinkedList?