【问题标题】:Adding all elements of an arraylist to a single object [closed]将arraylist的所有元素添加到单个对象[关闭]
【发布时间】:2012-11-21 23:40:18
【问题描述】:

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

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

所以它遍历每个元素,但存储并打印最后一个。

有什么建议吗?

【问题讨论】:

  • 你能告诉我们你正在使用的代码吗?
  • 您也可以发布您的代码。如何将 arraylist 的所有元素添加到一个对象中?
  • 除非您要添加的对象具有某种要添加的内部集合,否则您只需将最后一个添加的对象替换为下一个对象

标签: java generics arraylist


【解决方案1】:

假设你的 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()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-29
    • 2023-03-22
    • 1970-01-01
    • 2013-06-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多