【问题标题】:How to convert an ArrayList<T> to Object[][] in Java?如何在 Java 中将 ArrayList<T> 转换为 Object[][]?
【发布时间】:2013-08-12 01:13:03
【问题描述】:

将 Java ArrayList 转换为 Object[][] 的最简单方法是什么?
例如:

List<MyClass> myList = new ArrayList<MyClass>();
myList.add(myObj1);
myList.add(myObj2);

Object[][] objArray = myList.... How do I convert?

我尝试这样做的原因是使用 DBUtils 的 QueryRunner.batch(String sql, Object[][] params) 方法。

编辑: 有关详细信息,请参见此处: DBUtils QueryRunner.batch()

EDIT2:
我会尽力提供更多信息。

public class MyObj
{
    int myInt;
    String myString;
}

MyObj obj1 = new MyObj(1, "test1");
MyObj obj2 = new MyObj(2, "test2");

List<MyObj> myList = new ArrayList<MyObj>();
myList.add(obj1);
myList.add(obj2);

Object[] onedArray = myList.toArray();  // Now I have a 1d array of my list of objects.
Object[] objArray = myList.get(0); // How do I convert each object instance into an array of Objects?

// Intended result would be something like this:
new Object[][] { { 1, "test1" }, { 2, "test2" } };

编辑3: 一种可能的解决方案是: 我可以向 MyObj 类添加一个 toObjectArray() 方法。 肯定有更好的方法吗?

    public Object[] toObjectArray()
    {
        Object[] result = new Object[2];
        result[0] = this.myInt;
        result[1] = this.myString;
        return result;
    }

谢谢。

【问题讨论】:

  • 您希望objArray 的内容是什么?
  • 正如其他人所说,这没有意义。您需要说明如何将 List 的元素分配到与二维数组结构匹配的两组中。
  • 您可以像这样将 List 转换为数组:myList.toArray(new Object[0]);
  • 我认为你的问题的 EDIT3 版本的答案要么是“那是糟糕的设计......不要这样做”或“你的问题自己回答,因此是多余的”。无论哪种方式,我都看不到重新打开它的价值。

标签: java apache-commons-dbutils


【解决方案1】:

Arraylist 是一个单维集合,因为它在内部使用了一个单维数组。您不能将一维数组转换为二维数组。

如果您想将一维数组转换为二维数组,您可能需要添加更多信息。

【讨论】:

  • 取决于你的意思是转换
  • @aaronman - 是的,并且 OP 需要通过转换来定义 he 的含义。
  • 我试图澄清我的问题。
  • @Fade,阅读更新后的问题后,我想告诉你,你不需要二维数组。您正在获取一组对象,只需从这些对象中检索信息。或者,如果您想以您提到的方式打印对象,只需覆盖 MyObj 类中的 toString 方法。如果使用像eclipse这样的IDE,你可以生成toString方法,右键单击class->source-generate toString。一旦你这样做了,然后以漂亮的方式打印你的对象。
  • @JunedAhsan 感谢您的回复。我会更新我原来的问题。
猜你喜欢
  • 1970-01-01
  • 2015-01-11
  • 1970-01-01
  • 2014-05-09
  • 2016-04-14
  • 2012-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多