Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
正在寻找在Java中模拟指针数组的建议_Java_Arrays - Fatal编程技术网

正在寻找在Java中模拟指针数组的建议

正在寻找在Java中模拟指针数组的建议,java,arrays,Java,Arrays,我正在从事一个Java软件项目,我想创建一个瀑布式显示,在这个显示中,我需要在屏幕底部绘制一行彩色编码的数据,然后随着数据的老化和新行的创建而上移这些行。在我看来,虽然可以创建行数据,然后通过表示显示区域的2d数组移动行数组,但这并不是一种非常有效的方法 显然,如果我用C或C++写这个,我会用指针和指针数组。 如何在Java中实现这一点?在Java中,数组在任何情况下都不是真正的双二进制数组。它们是数组的数组。因此,您可以通过参考资料轻松完成: public void foo() { int

我正在从事一个Java软件项目,我想创建一个瀑布式显示,在这个显示中,我需要在屏幕底部绘制一行彩色编码的数据,然后随着数据的老化和新行的创建而上移这些行。在我看来,虽然可以创建行数据,然后通过表示显示区域的2d数组移动行数组,但这并不是一种非常有效的方法

显然,如果我用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中的双链表,只是以面向对象的方式

见:
而且:

这看起来更像是对Java语言的咆哮,而不是一个恰当的问题。在Java中,所有对象基本上都是作为指针传递的。因此,我的意思是所有不是“原语”的东西。你可以使用一个LinkedList,它可以方便地支持在列表中的任何位置删除和插入O1,而不是一个数组,它需要移动项目。也就是说,我们到底讨论了多少数据?80行字符?也许每秒更新一次?一个数组可能足够快,看看Android设备如何能够以30fps的速度渲染3D动画。如果你想用C++来思考,你应该把它们看作指针,而不是指针运算,而不是C++引用。事实上,你如此专注于为什么你的C++解决方案不会被翻译,这也意味着这个问题会显示XY问题。你花了一半的时间来讨论一个你不能使用的提议的非解决方案。不管怎么说,你没有真正清楚地描述你的问题,你是如何用Java解决它的,以及为什么它不起作用。你在对数据的引用中缺少了一个下标。或者我遗漏了你暗示的东西,但没有明确说明。是否应该有另一个变量?如果您试图访问某个特定元素,则应该有另一个变量。我们不是在说移动一整行数组吗?就是这样做的。通过将引用移动到二维数组中的特定行,这将是您暗示的明显的事情,但我没有得到。抱歉我的无知,但你的解决方案听起来比我想象的要容易得多。我一定要试一试。关于我为什么问最初的问题,似乎有很多假设。真的,我这么问是因为我想用现实的方式解决一个真正的问题。我明白我不能使用指针——我不是在抱怨现实。感谢您提供了一种可行的方法,我将看看我能用它做些什么。在Java中,指针已经被对象所取代。把对象想象成指向对象的指针,注意没有指向非对象的指针,有些人不知道如何阅读。就我而言,问题很清楚:我如何做X?