不好意思,我刚试通我的例子。
你可以用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));
  }
}

解决方案 »

  1.   

    可以用一维的Vector来模拟二维的数组
    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
    2维数组可以用两个的Vector
    n维数组可以用n个的Vector
    甚至可以使维数动态化
      

  3.   

    2维数组可以用两个的Vector?
    is 2*ColConut?
      

  4.   

    n维数组可以用n个的Vector?
    is RowCount + 1?
      

  5.   

    觉得robber说的有理。因为Vector可以是动态增长的。
      

  6.   

    但是, 请不要在大型项目中使用Vector, 如果想用, 还得自己去构造一个类似的 :(
      

  7.   

    to Dureek(普博) :
    为什么在大型项目当中不用vector?在stl当中,vector是最基本的模板,难道有什么问题吗?
    共同探讨!
      

  8.   

    我试了,不过不对劲,如:我设置第五行第三列为“shit",结果所有的行第三列都变成了'shit',
    用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"); 
        }
      }
    }  
      

  9.   

    呵呵,我告诉你问题在哪。
    看你的代码,
    你只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");
        }
      }
    }
      

  10.   

    呵呵,写错一个字;所以你第一次都要new出一个xArray来。应该是所以你每一次都要new出一个xArray来。
      

  11.   

    效率实在是低,一个十分简单的问题被你们搞的十分的复杂。
    我想问各位网友,如果它是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联系!
      

  12.   

    个为仁兄,二维动态数组有那么麻烦吗??var  value :array of array of Integer; setlength(value,3,3);//你可以任意指定