嗨,我是java的新手。在对我所面对的问题进行研究后,我尝试发帖提出一些问题。
最近我正在做一个文本分析软件。 我尝试用1 * 3维阵列完成。
之类的东西[0]
[][][]
[1]
[][][]
[2]
[][][]
[3]
[][][]
每个第二维中的三列用于保存第一维的细节。 但是第二维数组大小尚未知,这意味着,我知道我将从文本中找到多少我将要搜索的内容。一旦找到目标,它将会增加。 这是做这件事的愚蠢方式。 我知道java可以像int [] [] abc = new [5] []一样声明数组。 但它只能声明一个未知的维度。 然后我尝试做这样的事情
String [] abc = new string [4]
然后我首先假设大小是第二维第一列中的大小。
abc[0] = String [10][][] inside1;
abc[1] = String [10][][] inside2;
abc[2] = String [10][][] inside3;
abc[3] = String [10][][] inside4;
但编译时仍然出错。
我怎么能做宣言,或者做得更好。 如果我想念互联网上关于此的任何帖子。请告诉我任何关键字或链接供我查看。
答案 0 :(得分:2)
您尝试实施的是什么?听起来像你应该使用其中一个集合类和代表你的数据的值对象。
答案 1 :(得分:1)
我想我明白你要做的事情和它是这样的:
String[][] value = new String[4][3];
Java doenst有多维数组,它的Arrays In Arrays。
答案 2 :(得分:0)
10x13矩阵的示例:
String [] [] abd = new String [10] [13];
编辑:我选择10x13,因为1x3没有多大意义,是第一个值1.
答案 3 :(得分:0)
为什么不创建一个具有'name'属性的对象(如果您愿意,还可以创建'index'),以及一个List类型的'list'属性?
public class YourMultiDimensionalArrayObject {
private int index;
private List<String> vals;
public YourMultiDimensionalArrayObject(int _index) {
index = _index;
}
public void setValues(List<String> _vals) {
vals = _vals;
}
public int getIndex() {
return index;
}
public List<String> getVals() {
return vals;
}
}
答案 4 :(得分:0)
您可以使用ArrayList存储未知长度的int值数组。您可以使用ArrayList&gt;存储无限数量的int数组。
答案 5 :(得分:0)
如果您正在尝试解析文本文件并且知道每列的含义,则应创建一个包含该数据的新对象。数组数组是一个不必要的痛苦黑客,如果你只是做Java的设计用途,你的代码就更易于维护 - 写一个类。
答案 6 :(得分:0)
我会创建List<List<String>>
或Map<String, List<String>>
,假设您要存储和查找的值是字符串。