我有一个嵌套的 ArrayList 形式

ArrayList<ArrayList<PointF>> nestedArraylist

我想在以下意义上创建 nestedArraylistCopy 的“副本”nestedArraylist:
nestedArraylistCopy 的元素应该是 nestedArraylist 中元素的 独立 副本,即应该是 ArrayLists 保存对原始 PointF 中的 nestedArraylist 对象的引用。
  • 我可以以某种方式使用 Collections.copy(dest, src) 来做我想做的事吗?不幸的是,文档并不完全详细...
  • 下面的代码做我想要的吗?
    for(int i = 0; i < nestedArraylist.size(); i++)
        nestedArraylistCopy.add(new ArrayList<PointF>(nestedArraylist.get(i)));
    
  • 有没有更高效或优雅的解决方案?
  • 最佳答案

    Q1:在你 Collections.copy 之后,你的新 List 对象将包含与 src 相同的元素(假设大小相同),这意味着它拥有相同的 ArrayList<PointF> 对象,因此 PointF 对象也相同。如果您无法从 api java doc 中获得您想要的信息,请阅读源代码。

    Q2:您所做的与 Collections.copy 不同,因为您复制的 arrayList 将新的 Arraylist<PointF> 作为元素,但它们包含与源列表相同的元素 ( PointF )。

    Q3:我不知道。因为我不知道你最终想要什么。所有新对象?只有 ArrayList 应该是新对象,还是所有引用?

    关于java - "Copy"嵌套数组列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23337321/

    10-13 03:37