相关疑难解决方法(0)

如何克隆ArrayList并克隆其内容?

如何克隆ArrayList并在Java中克隆其项目?

例如,我有:

ArrayList<Dog> dogs = getDogs();
ArrayList<Dog> clonedList = ....something to do with dogs....
Run Code Online (Sandbox Code Playgroud)

我希望那些物品clonedList与狗列表中的物品不同.

java collections clone deep-copy

258
推荐指数
8
解决办法
41万
查看次数

如何在Java中备份ArrayList?

我有一些数据存储为ArrayList.当我想备份这些数据时,java会永远绑定两个对象.这意味着当我更改数据中的值时,ArrayList此更改将进入备份.我试图将数据中的值分别复制到循环中的备份,尝试使用方法data.clone()- 没有任何帮助.

java arraylist

9
推荐指数
3
解决办法
3万
查看次数

将ArrayList作为参数传递

首先让我说我不能在这里放任何代码,因为我的笔记本电脑上的互联网不能工作,所以我通过手机发布这个.好吧问题是我说有两个类:第一和第二类.第一类有一个ArrayList属性,它从类2中调用void方法并将其ArrayList作为参数传递.现在该方法初始化另一个方法ArrayList并使其等于我传递的参数并对该新方法进行更改ArrayList.有趣的是,即使我作为参数传递的原始ArrayList也在改变.可能的原因是什么?

java arrays arraylist

9
推荐指数
1
解决办法
7万
查看次数

带有java中自定义对象的列表的深层副本

我有一个包含自定义对象的List.我想创建该List的深层副本.这是自定义对象的类:

public class MyMemo {
    private List<Uri> imageUriList;
    private String commentText;

    public MyMemo(){
        imageUriList = new ArrayList<>();
    }

    public List<Uri> getImageUriList() {
        return imageUriList;
    }

    public void setImageUriList(List<Uri> imageUriList) {
        this.imageUriList = imageUriList;
    }

    public String getCommentText() {
        return commentText;
    }

    public void setCommentText(String commentText) {
        this.commentText = commentText;
    }
}
Run Code Online (Sandbox Code Playgroud)

现在我有以下情况:

List<MyMemo> parentList = new ArrayList<>();
List<MyMemo> copyList = new ArrayList<>(parentList);
parentList.get(currentMemoPosition).getImageUriList().removeAll(someOtherList.getImageUriList());
Log.e(TAG,"Total List: "+parentList.get(currentMemoPosition).getImageUriList().size()+" "+copyList.get(currentMemoPosition).getImageUriList().size());
Run Code Online (Sandbox Code Playgroud)

但是,如果我对parentListie中delete的项目或add新项目进行任何更改.copyList也受影响.如何确保copyList不引用相同的内存地址.

更新:

如建议使用clone().但问题是我的自定义对象中有一个列表.他怎么样 …

java android

2
推荐指数
2
解决办法
4192
查看次数

标签 统计

java ×4

arraylist ×2

android ×1

arrays ×1

clone ×1

collections ×1

deep-copy ×1