JAVA中如何储存不知道大小的二维数组?

刚学Java,如何在JAVA冲储存一个二维数组!这个二维数组的的大小由输入的内容决定!大小不能确定!用容器吗?
问题没说明白!呵呵!是这样的!现在有一个类可以实现向从文本文件中向主方法中读入一组整数数组!以怎样的方式在主函数存储他们呢?由于文本中的整数可以人为更改数量!不能确定数组的大小!用什么类存储呢?类似C++中的vector一样!只需要规定存储的类型!而不关心大小!JAVA中怎么实现呢?

使用java.util.Vector就可以了 ,不过此类不能存储基本数据类型,要使用对应的类替代,如int与Integer,float与Float等等。
Vector.add(Object)往向量里放数据,get(int)取出指定索引的数据。具体的你可以看看API。
如果你只用存放整数的话,可以用Vector<Integer> v;来声明一个向量。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-05-11
java中定义的数组长度可以由内容决定的
String [][] str={{"1","2"},{"3","4"}};

但我觉得这可能不能帮你解决问题,建议使用List<HashMap> list,如下面的例子可以很方便的存取二维数组内容
public static void main(String[] args) {
String [][] str={{"1","2"},{"3","4"}};

List<HashMap> list=new ArrayList<HashMap>();
for (int i = 0; i < str.length; i++) {
HashMap hm=new HashMap();
for (int j = 0; j < str[i].length; j++) {
hm.put("one",str[i][j]);
}
list.add(hm);
}
}
第2个回答  2010-05-11
首先你要了解什么是数组,数组在内存中是一段连续的空间,这样的优点就是元素的访问速度快,要长度可变的话你可以用链表,java 自带有一个双向链表 LinkedList ,也有一个ArrayList 这个就不能算是链表了.当然你可以自己写一个结构来实现,这个也不难,有点像链式哈希表,基本上用链表改一下就成了。
不过话说回来,我用java这么久还真的没有数组在用的时候不能确定它长度的, 正如楼上所说“int a=0,b=0;
Object[][] c=new Object[a][b];”大部份我们都是这样来声明数组的,数组在我们在声明的时候基本上要多大我们是知道的。
第3个回答  2010-05-11
数组必须提前设置长度,你要想让长度根据内容变化,可以用向量,链表等集合

vector就是向量 java里有这个对象
相似回答