Java,如何向Object数组添加值

时间:2016-05-03 13:00:26

标签: java arrays codenameone

我需要动态地向对象数组添加值,并将该数组变量传递给函数。

如果我手动添加值,它可以正常工作。

Object[][] listData = {{"Cheese", "Pepperoni", "Black Olives"},{"Cheese",    
"Pepperoni", "Black Olives"}};

这是需要使用 listData

的功能
TableModel tblModel = new DefaultTableModel(new String[]{"Date", "Action", "Amount"}, listData); 

但是如何从for循环中将值添加到 listData

ArrayList<Map<String, Object>> sampleArray =   (ArrayList)myPremiumspaid.get("Data"); 
for(int x =0; x<sampleArray.size(); x++)
 {
    //sampleArray.get(x).get("YearMonth");
   //listData[][] = "";  stuck here
 }

1 个答案:

答案 0 :(得分:2)

数组是固定大小,在创建数组对象后,您无法更新它的大小/放大它的大小。 因此,为了动态大小或自动增长大小的目的,您需要使用列表即。的的ArrayList

Object[][] listData = {{"Cheese", "Pepperoni", "Black Olives"},{"Cheese",    
"Pepperoni", "Black Olives"}};

相反:

List<List<Object>> listData=new ArrayList<List<Object>>();
listData.add(Arrays.asList("Cheese", "Pepperoni", "Black Olives"));
listData.add(Arrays.asList("Cheese", "Pepperoni", "Black Olives"));

但是这个ArrayList需要传递给一个带数组的函数,因此,你可以将 ArrayList 转换为数组对象

TableModel tblModel = new DefaultTableModel(new String[]{"Date", "Action", "Amount"}, (Object[][]) listData.toArray()); 
  

但是如何从for循环中将值添加到listData中?   现在你可以这样做:

ArrayList<Map<String, Object>> sampleArray =   (ArrayList)myPremiumspaid.get("Data"); 
for(int x =0; x<sampleArray.size(); x++)
 {
    //sampleArray.get(x).get("YearMonth");
   listData.get(x).add(sampleArray.get(x).get("YearMonth"));
 }

Codename One DefaultTableModelJson in jquery方法接受一个或一系列对象,所以只使用:

((DefaultTableModel)tblModel).addRow("Cheese", "Pepperoni", "Black Olives"); 

应该工作。