我正在开发一个Java软件项目,我想创建一个“瀑布式”显示,我需要在屏幕底部绘制一行颜色编码数据,然后“移动”行随着数据的老化和新行的创建。在我看来,尽管可以创建行数据,然后通过表示显示区域的2d数组移动行数组,但这不是一种非常有效的方法。
显然,如果我用C或C ++编写,我会使用指针(和指针数组)。
如何在Java中实现它?
答案 0 :(得分: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];
}
答案 1 :(得分:1)
Java有一个LinkedList类,就像C中的(双重)链表一样,只能以面向对象的(TM)方式工作。
请参阅:http://docs.oracle.com/javase/6/docs/api/java/util/LinkedList.html
并且:When to use LinkedList over ArrayList?