Tag: 多维数组

理解三维数组

我试图围绕三维数组。 我知道它们是二维数组的数组,但是我正在读的那本书让我感到困惑。 在我正在阅读的这本书的练习中,它要求我为全彩色图像制作一个三维数组。 它给出了一个小例子说: 如果我们决定选择一个三维数组,这里是如何声明数组: int[][][] colorImage = new int[numRows][numColumns][3]; 但是,这不是更有效吗? int[][][] colorImage = new int[3][numRows][numColumns]; 其中3是rgb值,0表示红色,1表示绿色,2表示蓝色。 对于后者,每个二维数组都会存储行和列的颜色值,对吧? 我只是想确保我理解如何有效地使用三维数组。 任何帮助将不胜感激,谢谢。

Java棋盘游戏

基本上我是用java创建一个棋盘游戏,并设法使用数组创建看起来像10×10网格的单元格。 现在我把它们编号为从左到右从上到下(如图) 我正在创造一个类似于蛇和梯子游戏的游戏,但有自己的转折。 问题是:如何创建类似于蛇和梯板的曲折板? 这就是它目前的样子: 下面的代码是创建数组并打印它们并对它们进行编号所需的内容。 对象名为Game: private Cell[][] cell = new Cell[10][10]; public Game(String nameIt) { super(nameIt); JPanel x = new JPanel(); x.setLayout(new GridLayout(10, 10, 2, 2)); for (int r = 0; ir< 10; r++) for (int c= 0; c < 10; c++) x.add(cell[r][c] = new Cell(r, c, this)); } 对象名为cell: private int row; […]

在Java中使用ArrayList的2D动态数组

我需要实现2D动态数组。 行数是固定的,比如说n。 但每行的列数不固定且等效。 例如,第一行有3个元素,第二行有5个元素。 如何使用Arraylist在Java中执行此操作。 谢谢。

在java中用两个1d数组填充2d数组

我有2个1d数组,我试图将它们填充到JAVA中的单个2d数组中。 例如: x[] = {2,5,7,9} y[] = {11,22,33,44} 结果应该是: result[][] = {{2,5,7,9}, {11,22,33,44}} 我该怎么做? 我目前有这样的事情: for(int row = 0; row < 2; row++) { for(int col = 0; col == y.length; col++) { ??? } } 我有点卡在那里……

用Java抽象数组的维数

在Java中,不同维度的数组具有不同的类型。 因此,将int[]作为参数的方法不能采用int[][]或int[][][] 。 我有很多代码,我创建的方法非常相似,但是对于数组的维度。 有没有办法处理任意维度的数组,从而抽象出这个常见的function?

数组的getter和setter

我有几个关于数组的getter和setter的问题。 假设我们有一个这样的类,它在构造函数中创建一个数组的私有副本: import java.util.Arrays; public class Foo { private int[] array; public Foo(int[] array) { this.array = Arrays.copyOf(array, array.length); } } 我们希望只通过getter和setter访问/变异数组。 如果我们有一个看起来像这样的吸气剂: public int[] getArray() { return array; } 当我们返回一个允许用户直接修改数组元素的引用时,它会破坏getter的目的。 例如 Foo foo = new Foo(someArray); … int[] bar = foo.getArray(); bar[0] = 123; // Now foo.array[0] = 123 and we haven’t used a […]

Java程序使用4D数组

我是第一年的计算机工程专业的学生,​​我在这里很新。 在过去的三个半月里,我一直在学习Java,在此之前我已经学习了六个月的C ++。 我对Java的了解仅限于定义和使用自己的方法,面向对象编程的绝对基础知识,如使用静态数据成员和成员可见性。 今天下午,我的计算机编程教授教我们Java中的多维数组。 关于多维数组只是数组的数组,依此类推。 他提到,在名义教育编程中,几乎从不使用超过2维的数组。 甚至3Darrays也仅在绝对必要的地方使用,例如执行科学function。 这使得4Darrays零使用,因为使用它们显示“我使用错误的数据类型”,在我的教授的话。 但是,我想编写一个程序,其中使用任何数据类型(原始或其他)的4D数组是合理的。 该程序不能像打印数组元素那样简单。 我不知道从哪里开始,这就是我在这里发布的原因。 我想要你的建议。 还欢迎相关的问题陈述,算法和代码片段。 谢谢。 编辑:忘记提及,我完全不知道在Java中使用GUI,所以请不要发布实现GUI的想法。

如何从2D java数组中获取列?

我知道2d数组是数组的数组。 要获得一行,你可以做: rowArray = my2Darray[row] 由于每行可以是不同的大小,我假设它不是为了从2D数组中获取列而内置的。 这让我相信你必须做的事情如下: for(int row = 0; row < numRows; row++) { colArray[row] = m2Darray[row][columnOfInterest]; } 它是否正确? 这是唯一的方法吗?

在2d数组中打印最大数字 – 为什么我的代码打印三个数字

我试图打印出2D数组中最大的数字。 我的问题是我的输出是三个数而不是一个 – 最大的。 为什么? 这是我的代码: public class Main { /** * @param args the command line arguments */ public static void main(String[] args) { int maxRows = 3; int maxCols = 4; int [] onedArray = new int [maxRows]; for (int i = 0; i < maxRows; i++){ onedArray[i] = (int) ((Math.random() * 100) […]

Java – 二维数组 – 绘制点

我正在为我正在参加的JAVA课程做作业。 我们正在讨论二维数组,但是在这个特定的赋值中,我无法弄清楚如何返回特定的点并用特定的值设置这些点。 这是作业: 编写一个名为create2DArray的方法,它将填充,创建并返回一个10 x 10 2d数组,其中包含1到100范围内的随机数。编写一个名为print2DArray的方法,该方法将以行列方式打印10 x 10 2D数组。 编写一个名为createCoords的方法,它将搜索2D数组,查找可被3整除的任何值。一旦找到了数字,就应该记录行,列的位置。 这意味着当您的方法完成时,它应该生成一个坐标列表,我可以用它来绘制我的图形。 此方法还必须返回可被3整除的坐标数,以便我知道要绘制多少个点。 只要我得到行,列位置的列表,我就不会特别注意如何返回坐标。 所以,我将留给你制定一个返回值的机制。 要测试您是否已记录坐标,请创建另一个名为fillLocations的函数,该函数将填充您使用-1记录的数组中的位置。 所以,你的程序应按此顺序流动 create2DArray print2DArray createCoords fillLocations print2DArray 我理解并完成了create2DArray和print2DArray,但我无法弄清楚createCoords和fillLocations。 这是我到目前为止所做的,但它不起作用,并且存在错误: public int createCoords(int row1, int col1){ int[][] coords = new int[row1][col1]; int[][] count = new int[0][0]; int co = 0; for(int row = 0; row < 10; row++) { for(int col […]