不好意思,我刚试通我的例子。
你可以用ArrayList嵌套来实现。
给你一个例子看一下:import java.util.*;public class Test{
public static void main(String args[]){
ArrayList a1=new ArrayList();
ArrayList a2=new ArrayList();
a1.add("student");
a1.add("students");
a2.add(a1);
System.out.println(((ArrayList)a2.get(0)).get(1));
}
}
你可以用ArrayList嵌套来实现。
给你一个例子看一下:import java.util.*;public class Test{
public static void main(String args[]){
ArrayList a1=new ArrayList();
ArrayList a2=new ArrayList();
a1.add("student");
a1.add("students");
a2.add(a1);
System.out.println(((ArrayList)a2.get(0)).get(1));
}
}
Vector2 extends Vector {
m_iColCount = 0;
public setColCount( int);
public int getColCount();
public setRowCount( int);
public int getColCount();
public setValueAt( Object, int, int);
public Object getValueAt( int, int);
}
2维数组可以用两个的Vector
n维数组可以用n个的Vector
甚至可以使维数动态化
is 2*ColConut?
is RowCount + 1?
为什么在大型项目当中不用vector?在stl当中,vector是最基本的模板,难道有什么问题吗?
共同探讨!
用vector套vector结果也是这样,不知何故。import java.util.*;public class two{
public static void main(String args[]){
ArrayList xArray = new ArrayList();
ArrayList yArray = new ArrayList(); //Vector vtContainer = new Vector();
int [] iSon = new int[5]; for(int i = 0; i < 10; i++){
xArray.clear();
for(int j = 0; j < 5; j++){
iSon[j] = 0;//i*10 + j;
xArray.add("item"+iSon[j]);
}
//vtContainer.addElement(iSon);
yArray.add(xArray);
}
((ArrayList)yArray.get(5)).set(3,"shit"); int [] iTemp = new int [5];
//Array.newInstance(Integer,iTemp);
for(int i = 0; i < yArray.size(); i++){
for(int j = 0; j < ((ArrayList)yArray.get(i)).size(); j++){
//ob = vtContainer.get(i);
//out.print("Line " + i + ":" + iTemp[j]);
System.out.print(((ArrayList)yArray.get(i)).get(j));
}
System.out.print("\n");
}
}
}
看你的代码,
你只new出一个xarray来,然后同一个内容重复添加了10次。
所以你第一次都要new出一个xArray来。
用下面的代码试试:import java.util.*;public class two{
public static void main(String args[]){
ArrayList yArray = new ArrayList(); //Vector vtContainer = new Vector();
int [] iSon = new int[5]; for(int i = 0; i < 10; i++){
ArrayList xArray =new ArrayList();
for(int j = 0; j < 5; j++){
iSon[j] = 0;//i*10 + j; xArray.add("item"+iSon[j]);
}
//vtContainer.addElement(iSon);
yArray.add(xArray);
} ((ArrayList)yArray.get(5)).set(3,"shit"); int [] iTemp = new int [5]; //Array.newInstance(Integer,iTemp);
for(int i = 0; i < yArray.size(); i++){
for(int j = 0; j < ((ArrayList)yArray.get(i)).size(); j++){
//ob = vtContainer.get(i);
//out.print("Line " + i + ":" + iTemp[j]);
System.out.print(((ArrayList)yArray.get(i)).get(j));
}
System.out.print("\n");
}
}
}
我想问各位网友,如果它是C++的话,你们还会这样做的吗?
我想恐怕是没有人回这样的吧!
我来给你们一个解决的方法吧,举个例子把,我现在要创建一个int型的的动态数组,
仅仅是一个很简单的例子,网友可不要跟我叫汁!Sample:public class Test {
public int[][] arr;
public Test() { //我随意的取了一个3,就是说我的动态数组的初始化大小为3个NODE。
//你可以随意的更改。
arr = new int[3][]; //动态创建它的两维部分,有点象树。
for(int i = 0,j = 2; i < arr.length; i ++) {
arr[i] = new int[j ++];
}
//初始化树的值;
int index = 0;
for(int i = 0; i < arr.length; i ++) {
for(int j = 0; j < arr[i].length; j ++) {
arr[i][j] = index ++;
}
} //检验一下正确性;
for(int i = 0; i < arr.length; i ++) {
for(int j = 0; j < arr[i].length; j ++) {
System.out.print(" " + arr[i][j]);
}
System.out.println("");
}
}
public static void main(String[] args) {
new Test();
}
}其实,上面的程序有许多的地方维护性比较的差,比如在添加一个元数时,
可能要进行很多的操作,其实这也很好解决。方法之一是把你要的数据封装
起来。这儿限于篇幅,我就不仔细展开了。网友如果有兴趣的话,我们可以
MAIL联系!