繁体   English   中英

将对象的ArrayLIst转换为String 2D Array

[英]Convert ArrayLIst of objects to String 2D Array

我正在尝试将Car类型的ArrayList转换为2D数组。 不幸的是,我没有Java8。我使用的是Java 7,而使用Java 8的话,应该有一种简单的方法:

String[][] stringArray = miniTable.stream().map(u -> u.toArray(new String[0])).toArray(String[][]::new);

数组列表:

miniTable = new ArrayList<Car>();
      miniTable.add(new Car("1123", "New York, NY", "Green"));
      miniTable.add(new Car("3321", "Tampa, FL", "Blue"));
      miniTable.add(new Car("3346", "Atlanta, GA", "Red"));,

逻辑

     int count=0;
      String[][] content = new String [3][5];
      //Convert regular array  to [][]
      for(int i=0;i<3;i++)
      {
          for(int j=0;j<5;j++)
          {
              if(count == miniTable.size()) break;
                content[i][j]= miniTable.get(i).getNumber();
                content[i][j]= miniTable.get(i).getOrigin();
                content[i][j]= miniTable.get(i).getColor();                   
                count++;
          }
      }

所需的Ouput: 在此处输入图片说明

我不明白为什么不能使用数组列表映射到表,但是构造数组时可以执行以下操作:

String[][] content = new String [3][5];
for(int i = 0; i < miniTable.size(); i++)
{
    Car car = miniTable.get(i);
    content[i][0] = car.getName();
    content[i][1] = car.getManufacturer();
    ....
}

不需要内部循环。 您想要将每个Car字段映射为2d数组的列值。

所以改变:

for(int j=0;j<5;j++)
{
    if(count == miniTable.size()) break;
    content[i][j]= miniTable.get(i)+"";
    count++;    
}

至 :

int j=0;
Car car =  miniTable.get(i);
content[i][j++]= car.getName();
content[i][j++]= car.getOrigin();
content[i][j++]= car.getColor();

暂无
暂无

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

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