Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 转换ArrayList<;对象[]>;反对[]_Java_Arrays_Object_Arraylist - Fatal编程技术网

Java 转换ArrayList<;对象[]>;反对[]

Java 转换ArrayList<;对象[]>;反对[],java,arrays,object,arraylist,Java,Arrays,Object,Arraylist,我几天来一直在寻找这个问题,但似乎找不到合适的答案。 因此,我有一个对象形式的数组数组列表(ArrayList),其中填充了SQL字符串的结果集。我的目标是将仅一行的结果转换为一维对象数组 我在这个网站上尝试了好几次我的研究成果,但我唯一学到的知识是如何将一维数组列表转换为简单数组。 我希望你们能在某些方面帮助我。谢谢 我的桌子是这样的: sizeid | diameter 1 | 32 2 | 40 使用SQL命令“从大小中选择直径”,我将得到这两个数字32和

我几天来一直在寻找这个问题,但似乎找不到合适的答案。 因此,我有一个对象形式的数组数组列表(ArrayList),其中填充了SQL字符串的结果集。我的目标是将仅一行的结果转换为一维对象数组

我在这个网站上尝试了好几次我的研究成果,但我唯一学到的知识是如何将一维数组列表转换为简单数组。 我希望你们能在某些方面帮助我。谢谢

我的桌子是这样的:

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