java中的数组只能保存固定数目的元素。我现在要实现的是:
查询一个表中的信息,自然得用一个二维数组,可是,问题在于事先不知道此表中有多少行、多少列,所以,请问用什么方法解决?
我想过用 Vector 类,但,它不能实现多维吧!
比如:1  2  3  4  5  ...
      1  2  3  4  5  ...
      1  2  3  4  5  ...
      .  .  .  .  .
      .  .  .  .  .
怎样将这些数据存进去,又如何将之取出来?注:行、列都不可知。

解决方案 »

  1.   

    int row_len=table.getRowCount();
    int[][] data=new int[row_len][];
    for(int i=0;i<row_len;i++){
        int col_len=table.getColumnCount(i);
        data[i]=new int[col_len];
        for(int j=0;j<col_len;j++){
            data[i][j]=table.getValueAt(i,j);
        } 
    }
      

  2.   

    用一个Vector数组好了.
    在不知道长度时,这是好的选择,Vector数组应该可以转换成二维数组的
      

  3.   

    Vector 里面再加Vector行不?
      

  4.   

    Vector可以实现多维的, 每个元素再引用另一个Vector就行了.
    PS: 最后不用Vector, 用ArrayList.
      

  5.   

    为什么不用ArrayList?变长的数组
    可以建一个类来抽象一个你保存的列信息,把列里该存的信息都存到那个对象里,
    然后把对象都一个个加到对象数组ArrayList里,这就是二维的了吧?
      

  6.   

    一楼的“table”从何而来呢?
      

  7.   

    好,我先看看ArrayList
    搞出来后再给分哈,谢谢大家了。如果还有其它建议,请继续哈
      

  8.   

    如果用ArrayList,怎样能分别取其中的元素呢?
    比如我要取第二行的第三个元素,又怎样实现呢?
      

  9.   

    ArrayList可以嵌套另一个ArrayList
    初始化:
    ArrayList<ArrayList> a = new ArrayList<ArrayList> ();
    ArrayList<string> b = new ArrayList<string> ();ArrayList<string> c = new ArrayList<string> ();
    插入:
    b.put("1");
    b.put("2");
    c.put("3");
    c.put("4");
    a.put(b);
    a.put(c);
    读取:
    a.get(0).get(1);
      

  10.   

    加入数据应该用add吧?
    可是,提取数据是什么呀?拜托了,知道的说一下呀
      

  11.   

    当然是get了
    不过很多的情况是凡是继承自Collection的类都是用Iterator来访问的
    ArrayList当然也最好是用Iterator来操纵了
    ArrayList list = new ArrayList();
    Iterator iter = list.iterator();
    while (iter.hasNext())
    {  
       Object element = iter.next();   //返回你要得到的元素
    }
      

  12.   

    请各位看下面的代码:
    import java.util.*;
    class ArrayListDemo
    {
      public static void main(String args[])
      {
        ArrayList a=new ArrayList();
        ArrayList b=new ArrayList();
        ArrayList c=new ArrayList();
        b.add("1");
        b.add("2");
        System.out.println("b.get(1)="+b.get(1));
        c.add("3");
        c.add("4");
        a.add(b);
        a.add(c);
        System.out.println(a.get(0).get(1));
      }
    }
    怎样从 a 中将值“4”取出来?帮我解决了此问题,将万分感激!
      

  13.   

    最后一个 
    System.out.println();
    是错误的
      

  14.   

    在一个ArrayList对象里面继续插入ArrayList对象不能实现吗?这个就好像Array的多维数组一样。只是这个ArrayList是可以动态的。
      

  15.   

    cyfnjtu(迎风) ( ) 信誉:100  2006-04-30 12:49:00  得分: 0  
     
     
       int row_len=table.getRowCount();
    int[][] data=new int[row_len][];
    for(int i=0;i<row_len;i++){
        int col_len=table.getColumnCount(i);
        data[i]=new int[col_len];
        for(int j=0;j<col_len;j++){
            data[i][j]=table.getValueAt(i,j);
        } 
    }
      
     
    ....................................
    如果是从数据库中取数据,你可以用这位大哥的方法
      

  16.   

    cyfnjtu(迎风) ( ) 信誉:100  2006-04-30 12:49:00  得分: 0  
     
     
       int row_len=table.getRowCount();
    int[][] data=new int[row_len][];
    for(int i=0;i<row_len;i++){
        int col_len=table.getColumnCount(i);
        data[i]=new int[col_len];
        for(int j=0;j<col_len;j++){
            data[i][j]=table.getValueAt(i,j);
        } 
    }
      
     
    ....................................
    如果是从数据库中取数据,你可以用这位大哥的方法
      

  17.   

    最新的代码,需要jdk1.5,ArrayList的索引是从0开始的
    要取“4”的是先取c即a.get(1),然后再取c的第二个元素,即a.get(1).get(1)
        
    ArrayList <ArrayList> a=new ArrayList<ArrayList>();
        ArrayList <String> b=new ArrayList<String>();
        ArrayList <String>c=new ArrayList<String>();
        b.add("1");
        b.add("2");
        System.out.println("b.get(1)="+b.get(1));
        c.add("3");
        c.add("4");
        a.add(b);
        a.add(c);
        System.out.println(a.get(1).get(1));
    如果是jdk1.4的话麻烦些需要显示类型转换。
    应该是怎样取,我没发实验。
    (ArrayList)(a.get(1)).get(1);
      

  18.   

    请各位看下面的代码:
    import java.util.*;
    class ArrayListDemo
    {
      public static void main(String args[])
      {
        ArrayList a=new ArrayList();
        ArrayList b=new ArrayList();
        ArrayList c=new ArrayList();
        b.add("1");
        b.add("2");
        System.out.println("b.get(1)="+b.get(1));
        c.add("3");
        c.add("4");
        a.add(b);
        a.add(c);
        System.out.println(a.get(0).get(1));
      }
    }
    怎样从 a 中将值“4”取出来?帮我解决了此问题,将万分感激!************************************************************
    可以用:System.out.println(((ArrayList)a.get(0)).get(0));得到
      

  19.   


            怎样从 a 中将值“4”取出来?帮我解决了此问题,将万分感激!这样取:
    System.out.println(((ArrayList) a.get(1)).get(1));