为何无法像获取行一维数组那样便捷获取列一维数组?
这个问题提得很实在!咱们先从你给出的背景信息入手,再聊聊你的疑问和建议:
背景
这是一个2D数组:
String[][] names = { {"Sam", "Smith"}, {"Robert", "Delgro"}, {"James", "Gosling"}, };
你可以通过names[n]访问指定行,其中n需要满足0<=n<=names.length-1(处于数组边界范围内)。举个实际的例子:
String [] rowOne = names[0];
问询
现在的核心问题是:能不能像访问特定行那样,用类似的简洁方式直接访问特定列?
反馈建议
针对2D数组访问列的场景,你提出了一个非常直观的语法建议:用names[][x]来调用特定列,其中0<=x<=names[0].length-1,比如:
String[] columnOne = names[][0]
按照这个思路,names.length会和names[][x].length等价,而且这个语法还能无缝扩展到更高维度的数组。
比如咱们看一个3D数组的例子:
String[][][]names = { {{"Sam", "Smith"}, {"Robert", "Delgro"}}, {{"James", "Gosling"}}};
只需要添加对应数量的方括号就行。比如要访问你所说的第三维度的“通道(aisle)”,可以用names[][][z],其中0<=z<= names[0][1].length-1,就能直接从多维数组里提取出对应的一维数组。
内容的提问来源于stack exchange,提问作者Paul
相关产品推荐
相关产品推荐

