将ArrayList <object []>转换为Object [] </object []>

时间:2014-04-18 10:27:23

标签: java arrays object arraylist

我正在寻找这个问题,因为我几乎找不到合适的答案。 所以我有一个以Array(ArrayList)形式填充SQL字符串结果集的数组ArrayList。我的目标是将只有一行的结果转换为一维对象数组。

我已经多次尝试过这个网站的研究结果,但我所做的唯一知识就是如何将一维ArrayList转换为简单的数组。 我希望你们能在某些方面帮助我。谢谢!

我的表看起来像这样:

sizeid | diameter
   1   |    32
   2   |    40

使用SQL命令“SELECT diameter FROM size”,我将获得这两个数字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;
}

生成类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);
   }
}

和SQLquery类的简单get方法:

public List<Object> getRowData() {
   return rowData;
}

2 个答案:

答案 0 :(得分:1)

显然,您的getRowData()方法返回List<Object>,而它实际上包含数组。虽然这看起来很奇怪,因为你说它总是返回一个数组列表,但我认为这就是你所拥有的。

你需要一个遍历这些“对象”的循环,将它们向下转换为Object[],并取得第一个成员。

Object[] sizes = new Object[sizeList.size()];
int i = 0;
for (Object o : sizeList) sizes[i++] = ((Object[]) o)[0];
return sizes;

答案 1 :(得分:0)

您可以使用 Marko Topolnik 建议的方法。

但我建议你自己编写#34;表&#34; class,它解析结果集并根据您的查询将值放入N * M维数组(或List)中。这样,您可以存储元信息,如N或M维的大小等。