java - 为什么我不能像行一样简单地获得一维数组?
问题描述
背景
这是一个二维数组。-
String[][] names = { {"Sam", "Smith"}, {"Robert", "Delgro"}, {"James", "Gosling"}, };
我可以通过调用来访问这些行:
names[n]
其中 n 是边界之间的任何整数,在本例中为 0<= n
<=names.length-1。
同样
,我可以称之为
String [] rowOne = names[0];
询问
现在的问题仍然是,而不是行,是否有一种方法可以像访问特定行一样访问特定列。
反馈
我想对此建议提供反馈。在访问2d array中的列的特定情况下,names[][x]
将声明调用特定列,其中0<= x
<=names[0].length-1。
String[] columnOne = names[][0]
这将意味着这names.length
将相当于调用names[][x].length
这也适用于大于2d 数组的数组。
String[][][]names = { {{"Sam", "Smith"}, {"Robert", "Delgro"}}, {{"James", "Gosling"}}};
只需添加额外的方括号。
例如,在 3d 数组中,要访问aisle,这就是我将引用的3rd dimension。
names[][][z]
, 其中0<= z
<= names[0][1].length-1
一维数组来自多维数组。
解决方案
...有没有办法以与访问特定行相同的方式访问特定列。
不; Java 的多维数组本质上是包含对其他数组的引用的数组,这些数组在内存中并不连续。Java 还允许数组是锯齿状的。假设您有以下多维数组:
int[][] array = {
{1, 2, 3},
{4, 5},
{6}
};
通过调用array[][2]
,您希望收到什么?怎么样array[][3]
?
为了能够获得一个列数组,您需要首先转置多维数组。
推荐阅读
- php - 如何在 PHP 服务器中设置 HTTP 状态文本
- c++ - 在头文件中包含 cpp 文件有缺点吗?
- apache-spark-sql - 大数据(spark sql 和 spark dataframes 连接)
- php - 在 PHP 中获取未选中的复选框值
- java - 使用屏幕截图 API
- javascript - 为什么 Discord 机器人看不到用户?
- bash - 在 bash 脚本中使用键码
- azure - Azure函数是否可以侦听多个blob以触发blob
- c# - System.Timers.Timer - 不在我的网站上每天重复
- pyspark - 如何在 SparkSQL 中订购?