java多维数组声明1 * 3维?
嗨,我是新来的java.After所以研究我面临的问题,我尝试帖子问一些问题。java多维数组声明1 * 3维?
最近我正在做一个文本分析软件。 我试着用1 * 3维数组完成。 像
[0]
[][][]
[1]
[][][]
[2]
[][][]
[3]
[][][]
在每个第二维三个栏是用于保存第一个维度的细节。 但是第二维数组的大小还不知道,这意味着,idont知道我会从文本中找到多少我将要搜索的内容。一旦目标找到,它就会增加。 是这样做的愚蠢的方式。 我知道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;
但我编译它时仍然出错。
我该如何做声明或者有更好的方法来完成这件事。 如果我错过了关于这个在互联网上的任何帖子。请给我看任何关键字或链接让我看看。
例为10x13矩阵:
String [] [] abd = new String [10] [13];
编辑:我选择10x13,因为1×3并没有太大的意义,是第一个值1
刚刚对于布局感到抱歉。我想要做的是数组中的数组。这意味着在abd [0]有一个三维数组,abdinside [] [] []。我可以向你解释清楚吗? – nonamime 2011-05-26 17:26:54
String [] [] [] [] abd = new String [] [] [] []; – Hyperboreus 2011-05-26 17:30:14
忘了尺寸:String [] [] [] [] abd = new String [dim1] [dim2] [dim3] [dim4]; – Hyperboreus 2011-05-26 17:36:03
我想我明白你想什么要做和它是这样的:
String[][] value = new String[4][3];
Java doenst有多维数组,它的数组在阵列中。
Arrayception ... – alexcoco 2011-05-26 17:29:42
你试图实现什么?听起来像你,而应该使用其中一个集合类与表示数据的值对象一起使用。
是的,谢谢你的提及。我认为创建一个新的类来处理它会更好。 – nonamime 2011-05-26 17:44:45
为什么不创建一个具有'name'属性(或'索引',如果你喜欢的)的对象,和一个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;
}
}
您可以使用ArrayList来存储未知长度的int值的数组。您可以使用ArrayList>来存储无限数量的int数组。
如果你想解析一个文本文件,并且你知道每列表示什么,你应该创建一个包含该数据的新对象。数组的阵列是一种不必要的痛苦骇客,如果你只是做Java设计用来编写类的代码,那么你的代码更易于维护。
感谢您的评论,它启发我。是的,我应该创建一个类来存储数据。我对编程尤其是新手,尤其是面向对象。所以最近我很困惑什么时候让它变成一个类,或者让它变成一个函数。任何书推荐了解这一点。 – nonamime 2011-05-26 17:35:48
我会创建一个List<List<String>>
或Map<String, List<String>>
,假设您要存储和查找的值是字符串。
看起来像4乘3(二维)数组。 – 2011-05-26 17:27:53