在飞行中创建对象[] []类型

时间:2012-12-05 16:45:21

标签: java list object

这是我的定义类,我没有包含获取代码short and sweet

public class Details() {
  String name;
  double price;
  int quan;
  double totalValue;

  public String getName();
  public double getPrice();
  public int quan();
  public double totalValue();
}

这是我保存详细信息列表的方式

ArrayList<Details> myDetails = new ArrayList<Details>();

这是我想用来制作表格行/列的函数 在这里,我希望能够通过我的详细信息表进行迭代,以生成类似于下面的内容。

public Object[][] getStockTable() {
  Object[][] dynamicObject = new Object[][] {
      { "Name1", "Price1", "Quan1", "TV1"  },
      { "Name2", "Price2", "Quan2", "TV2"  },
      { "Name3", "Price3", "Quan3", "TV3"  } };

  //But how do this by iterating through rather than manually like above^
  return dynamicObject;

}

这就是我为表格设置行/列的方式

dm.setDataVector(getStockTable(), new Object[] { "Name","Price", "Quan", "Total Value" });

在经历了一些混乱后,我没有想出办法来做到这一点。请不要只是给我一个答案,我希望能够理解如何做到而不是为我做完。

2 个答案:

答案 0 :(得分:4)

Object[][]只是Object[]的数组,因此OO方法是向Detail添加创建单个“行”的方法{{1} }

Object[]

然后在public Object[] toRow() { return new Object[] { getName(), String.valueOf(getPrice()) /* etc. */ }; }

中收集这些内容
getStockTable

答案 1 :(得分:2)

这样的事情?

public Object[][] getStockTable() {
    ArrayList<Details> details = getDatailsList();
    Object[][] result = new Object[details.size()][];
    for (int i = 0; i < details.size(); i++) {
        Details detail = details.get(i);
        Object[] det = new Object[4];
        det[0] = detail.getName();
        det[1] = detail.getPrice();
        det[2] = detail.quan();
        det[3] = detail.totalValue();
        result[i] = det;
    }
    return result;
}