将arraylist的所有元素添加到单个对象

时间:2012-11-21 23:40:18

标签: java generics arraylist

我想将一个arraylist的每个元素添加到一个对象(具有通用基类型T)中

我试图这样做但是当我打印出作为对象的最终输出时,我只打印了arraylist的最后一个元素。

所以它通过每个元素进行迭代,但是存储并打印最后一个元素。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

假设您的T不是聚合类型,则无法将多个对象合并为一个。

如果您的T是一个集合,并且您想要折叠集合,则可以迭代每个源集合并将每个值添加到目标集合。

然而,对你而言,听起来就像你真正追随的是对象的漂亮可打印视图。如果这是用于调试,我建议找到许多JSON支持库之一,并打印对象的JSON转换,这将是可读的。我自己动手,因为我必须支持Domino API类型,所以我不推荐一个。

我最近做得太多,远远超过C#,现在不能用流利的Java思考,但接近这一点(至少在精神上,如果不是语法或API细节)是你所追求的:

StringBuffer b = new StringBuffer();
boolean first = true;

for (var t : collectionType) {
   if (first) {
      first = false;
   }
   else {
      b.add(", ");
   }

   b.add(t.toString());  
}

// Aggregated printable values are now b.toString()