Java 转换ArrayList<;对象[]>;反对[]
我几天来一直在寻找这个问题,但似乎找不到合适的答案。 因此,我有一个对象形式的数组数组列表(ArrayList),其中填充了SQL字符串的结果集。我的目标是将仅一行的结果转换为一维对象数组 我在这个网站上尝试了好几次我的研究成果,但我唯一学到的知识是如何将一维数组列表转换为简单数组。 我希望你们能在某些方面帮助我。谢谢 我的桌子是这样的:Java 转换ArrayList<;对象[]>;反对[],java,arrays,object,arraylist,Java,Arrays,Object,Arraylist,我几天来一直在寻找这个问题,但似乎找不到合适的答案。 因此,我有一个对象形式的数组数组列表(ArrayList),其中填充了SQL字符串的结果集。我的目标是将仅一行的结果转换为一维对象数组 我在这个网站上尝试了好几次我的研究成果,但我唯一学到的知识是如何将一维数组列表转换为简单数组。 我希望你们能在某些方面帮助我。谢谢 我的桌子是这样的: sizeid | diameter 1 | 32 2 | 40 使用SQL命令“从大小中选择直径”,我将得到这两个数字32和
sizeid | diameter
1 | 32
2 | 40
使用SQL命令“从大小中选择直径”,我将得到这两个数字32和40,它们存储在一个简单的2x1表中
| 32 |
| 40 |
现在我想把它们放在一维数组中
要转换的方法:
private Object[] getSizes() {
query = new SQLquery();
query.setSQLstring("SELECT diameter FROM size");
query.runQuery();
List<Object> sizeList = query.getRowData();
Object[] sizes = new Object[sizeList.size()];
// here I want to convert the List to an array..
return sizes;
}
private对象[]getSizes(){
query=newsqlquery();
query.setSQLstring(“从大小中选择直径”);
runQuery();
List sizeList=query.getRowData();
Object[]size=新对象[sizeList.size()];
//在这里,我想将列表转换为数组。。
返回大小;
}
生成类SQLquery的ArrayList的方法:
public void outputResult() {
try {
if (result != null) {
ResultSetMetaData meta = result.getMetaData();
columns = meta.getColumnCount();
columnNames = new Object[columns];
for (int i=1; i<=columnNames.length; i++) {
columnNames[i-1] = meta.getColumnName(i);
}
List<Object> rowData = new ArrayList<Object>();
while (result.next()) {
Object[] row = new Object[columns];
for (int j=0; j<= columns; j++) {
row[j-1] = result.getString(j);
}
rowData.add(row);
}
}
} catch (SQLexception e) {
System.out.println(e);
}
}
public List<Object> getRowData() {
return rowData;
}
public void outputResult(){
试一试{
如果(结果!=null){
ResultSetMetaData meta=result.getMetaData();
columns=meta.getColumnCount();
columnNames=新对象[列];
对于(int i=1;i显然,您的getRowData()
方法返回一个List
而实际上它包含数组。虽然这看起来很奇怪,因为您说它总是返回数组列表,但我假设您就是这样的
您需要一个遍历这些“对象”的循环,将它们向下转换为Object[]
,并获取第一个成员
Object[] sizes = new Object[sizeList.size()];
int i = 0;
for (Object o : sizeList) sizes[i++] = ((Object[]) o)[0];
return sizes;
您可以使用Marko Topolnik建议的方法
不过,我建议您编写自己的“Table”类,该类将解析结果集,并根据您的查询将值放入N*M维数组(或列表)。这样您就可以存储N维或M维大小等元信息。Object[]obj=myArrayList.get(0)不,我想他想要一个包含查询中所有单值结果的数组。eclipse向我回复了以下错误消息:“类型不匹配:无法从Object转换为Object[]”这里有问题:for(int j=0;j为什么对象列表中的项目是数组?实际上,对象列表中的每个项目都代表SQL查询的结果行:一行可以包含多个值(列):这只是一种特殊情况,其中查询只选择一列,因此我们的数组中只有一项。@Nicola列表中的项是数组并不奇怪。奇怪的是,所述列表的类型是list
。