[英]How to transform list of objects into one row object in java
我的A類有如下私人成員。
class A {
String type;
}
上面的類將作為列表對象List出現。 現在我有另一個班B
Class B {
String type1;
String type2;
String type3;
String type4;
String type5;
String type6;
String type7;
String type8;
}
所以現在我如何遍歷List並逐個獲取(type)數據,然后將其放入B類中,因為單個對象就像第一個對象將進入Type1,第二個---> type2,第三個---> type3 .....,依此類推。 注意:A類中只有8種類型作為列表。 所以在B類中我們將有8種類型,並且我已經考慮過反射,因此,如果這是唯一的選擇,請告訴我如何使用它。
如果可以將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;
等等。
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);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.