java中的数组只能保存固定数目的元素。我现在要实现的是:
查询一个表中的信息,自然得用一个二维数组,可是,问题在于事先不知道此表中有多少行、多少列,所以,请问用什么方法解决?
我想过用 Vector 类,但,它不能实现多维吧!
比如:1 2 3 4 5 ...
1 2 3 4 5 ...
1 2 3 4 5 ...
. . . . .
. . . . .
怎样将这些数据存进去,又如何将之取出来?注:行、列都不可知。
查询一个表中的信息,自然得用一个二维数组,可是,问题在于事先不知道此表中有多少行、多少列,所以,请问用什么方法解决?
我想过用 Vector 类,但,它不能实现多维吧!
比如:1 2 3 4 5 ...
1 2 3 4 5 ...
1 2 3 4 5 ...
. . . . .
. . . . .
怎样将这些数据存进去,又如何将之取出来?注:行、列都不可知。
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);
}
}
在不知道长度时,这是好的选择,Vector数组应该可以转换成二维数组的
PS: 最后不用Vector, 用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);
可是,提取数据是什么呀?拜托了,知道的说一下呀
不过很多的情况是凡是继承自Collection的类都是用Iterator来访问的
ArrayList当然也最好是用Iterator来操纵了
ArrayList list = new ArrayList();
Iterator iter = list.iterator();
while (iter.hasNext())
{
Object element = iter.next(); //返回你要得到的元素
}
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();
是错误的
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);
}
}
....................................
如果是从数据库中取数据,你可以用这位大哥的方法
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);
}
}
....................................
如果是从数据库中取数据,你可以用这位大哥的方法
要取“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);
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));得到
怎样从 a 中将值“4”取出来?帮我解决了此问题,将万分感激!这样取:
System.out.println(((ArrayList) a.get(1)).get(1));