繁体   English   中英

Java,如何将值添加到对象数组

[英]Java, How do i add values to Object array

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

如果我手动添加值,则效果很好。

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
 }

数组是固定大小的 ,创建数组Object后,您无法更新它的大小/不能放大它的大小。 因此,要达到动态尺寸或自动增长尺寸的目的,您需要使用List即。 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传递给采用array的函数,因此,您可以将ArrayList转换为array object

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"));
 }

代号一个的DefaultTableModel有一个addRow方法,该方法接受一个数组或一系列对象,因此只需使用:

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

应该管用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM