java的一个二维数组的每一列可不可以看成是一个一维数组

@__Chao - L 2020-06-20 11:04:19
就像二维数组的每一行arr[0]、arr[1]...可以看成是一个一维数组一样,java的一个二维数组的每一列可不可以看成是一个一维数组,如果可以又如何用代码表示每一列???
...全文
8548 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
三仙半 2020-06-23
  • 打赏
  • 举报
回复
理论上的二维数组是这样的:1、每一维是一个数组;2、每一维的长度是一样的。
java的二维数组应该理解为“数组的数组”,即:每一维必须是数组,但是,不要求每一维的数组长度一致。
基于以上描述可以知道,java 的二维数组是不可以基于列操作的,因为,有些维就没有指定的列。
wangdong20 2020-06-23
  • 打赏
  • 举报
回复
引用 8 楼 qq_16774199 的回复:
[quote=引用 7 楼 wangdong20 的回复:] 在底层,二维数组其实也是一维数组,二维数组就是保存在一个线性排列的内存块,每一行相邻的元素可以保证在内存里也是相邻的,但是每一列的数据就不能保证是相邻的内存块了,除非每行就一个元素
那么3难数组呢?4 5 6 维呢?[/quote]无论三维四维五维在底层都会转化为一维数组,因为计算机底层没有三维空间
SilentHunter460 2020-06-23
  • 打赏
  • 举报
回复
引用 7 楼 wangdong20 的回复:
在底层,二维数组其实也是一维数组,二维数组就是保存在一个线性排列的内存块,每一行相邻的元素可以保证在内存里也是相邻的,但是每一列的数据就不能保证是相邻的内存块了,除非每行就一个元素
那么3难数组呢?4 5 6 维呢?
wangdong20 2020-06-23
  • 打赏
  • 举报
回复
在底层,二维数组其实也是一维数组,二维数组就是保存在一个线性排列的内存块,每一行相邻的元素可以保证在内存里也是相邻的,但是每一列的数据就不能保证是相邻的内存块了,除非每行就一个元素
冰思雨 2020-06-22
  • 打赏
  • 举报
回复
引用 3 楼 @__Chao - L 的回复:
问题如下代码所述

public class hello{
	public static void main(String[] args){
		int[][] arrM = new {{1, 2, 3}, {4, 5, 6}, {7, 8, 9},{10, 11, 12}};
		
		int arrR1 = arrM[0]; //表示第一行的所有元素 1 2 3
		int arrR2 = arrM[1]; //表示第二行的所有元素 4 5 6 
		int arrR3 = arrM[2]; //表示第三行的所有元素 7 8 9
		int arrR4 = arrM[3]; //表示第四行的所有元素 10 11 12
		
		//用代码如何表示每一列的所有元素
		int[] arrC1 =  ???;     //表示第一列的所有元素 1 4 7 10
		int[] arrC2=  ???	 //表示第二列的所有元素 2 5 8 11
		int[] arrC3 =  ???      //表示第三列的所有元素 3 6 9 12
		
	}
}
没有可以直接表示列的方法。 楼主可以: 1. 重新构建一个数组,数组元素将列的元素进行赋值,这样的话,一个数组就是一个列,3个列就构建3个数组。 2. 可以将二维数组进行转置,也就是行列互换,那么,以前访问行的方法,转置之后,就是访问列的方法了。 3. 构建自定义的数组类,提供可以将行看做一位数组的方法,也提供将列看做一位数组的方法。
iiii5268 2020-06-22
  • 打赏
  • 举报
回复
感觉可以指定行号变列号取出来的就是一列的数据了呀,写入也是一样,但是在代码中让ide或者编译器把列当成一个对象估计不得行
SilentHunter460 2020-06-22
  • 打赏
  • 举报
回复
public class hello {

	public static void main(String[] args) {
		int[][] arrM = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 }, { 10, 11, 12 } };
		int row = arrM.length;
		int[] arrC1 = new int[row];
		int[] arrC2 = new int[row];
		int[] arrC3 = new int[row];
		for (int i = 0; i < row; i++) {
			arrC1[i] = arrM[i][0];
			System.out.println(arrC1[i]);
		}
		for (int i = 0; i < row; i++) {
			arrC2[i] = arrM[i][1];
			System.out.println(arrC2[i]);
		}
		for (int i = 0; i < row; i++) {
			arrC3[i] = arrM[i][2];
			System.out.println(arrC3[i]);
		}
	}
	
}
@__Chao - L 2020-06-21
  • 打赏
  • 举报
回复
问题如下代码所述

public class hello{
	public static void main(String[] args){
		int[][] arrM = new {{1, 2, 3}, {4, 5, 6}, {7, 8, 9},{10, 11, 12}};
		
		int arrR1 = arrM[0]; //表示第一行的所有元素 1 2 3
		int arrR2 = arrM[1]; //表示第二行的所有元素 4 5 6 
		int arrR3 = arrM[2]; //表示第三行的所有元素 7 8 9
		int arrR4 = arrM[3]; //表示第四行的所有元素 10 11 12
		
		//用代码如何表示每一列的所有元素
		int[] arrC1 =  ???;     //表示第一列的所有元素 1 4 7 10
		int[] arrC2=  ???	 //表示第二列的所有元素 2 5 8 11
		int[] arrC3 =  ???      //表示第三列的所有元素 3 6 9 12
		
	}
}
你看见了吗° 2020-06-20
  • 打赏
  • 举报
回复

String arr[][] = {{"aa","bb","cc","dd"},{"11","22","33"},{"1q","2e","3r","4t","6a"}};
String[] str = arr[1];
String stra = str[1];

这样表示每一列?
你看见了吗° 2020-06-20
  • 打赏
  • 举报
回复

不是很理解你要表达的是什么意思

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧