如何在java中将对象列表转换为一个行对象

时间:2017-07-04 05:38:48

标签: java spring

我有一个A级的私人会员,如下。

class A {
  String type;
}

上面的类将作为列表对象列表。现在我有另一个B级

Class B {
  String type1;
  String type2;
  String type3;
  String type4;
  String type5;
  String type6;
  String type7;
  String type8;
}

所以现在我如何迭代List并逐个获取(类型)数据然后将其作为单个对象放入B类,如第一个将转到Type1,第二个---> type2,third one ---> type3 .....,等等。 注意:A类中只有8种类型作为列表。所以我们将在B类中有8种类型,并且我已经考虑过反思,所以请告诉我如何使用它,如果这是唯一的选择。

2 个答案:

答案 0 :(得分:0)

如果您可以将B级更改为:

class B
{
    String[] types;
}

然后我们可以这样做:

int i = 0;
for(A aObject:aList){
    bObject.types[i] = aObject.type;
}

否则我们可以添加如下所有类型:

bObject.type1 = aList.get(0).type;
bObject.type2 = aList.get(1).type;

等等。

答案 1 :(得分:0)

Jasper支持Map,因此我建议您将值存储在SortedMap中,例如TreeMap,而不是带有公共变量的类。

然后你会添加你的类型名称:

Map<String, String> b = new TreeMap<>();
b.put("type1", "Foo");
b.put("type2", "Bar");
b.put("type3", "Baz");
...

或者如果您从A:

列表中填充
List<A> list = ...;
Map<String, String> b = new TreeMap<>();
for (int i = 0; i < list.size(); i++) {
    b.put("type" + (i + 1), list.get(i).type;
}

要迭代地图中的所有名称,您可以使用:

for (Map.Entry<String, String> entry: b.entrySet()) {
    String key = entry.key();
    String value = entry.value();
    System.out.println(key + " = " + value);
}