首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何不通过引用将元素从一个ArrayList复制到另一个?

在不通过引用的情况下将元素从一个ArrayList复制到另一个,可以使用以下几种方法:

方法一:使用addAll()方法

addAll()方法可以将一个集合中的所有元素添加到另一个集合中,从而实现复制。

代码语言:txt
复制
import java.util.ArrayList;

public class Main {
    public static void main(String[] args) {
        ArrayList<Integer> sourceList = new ArrayList<>();
        sourceList.add(1);
        sourceList.add(2);
        sourceList.add(3);

        ArrayList<Integer> destinationList = new ArrayList<>();
        destinationList.addAll(sourceList);

        System.out.println("Source List: " + sourceList);
        System.out.println("Destination List: " + destinationList);
    }
}

方法二:使用循环逐个添加元素

通过循环遍历源列表,并将每个元素逐个添加到目标列表中。

代码语言:txt
复制
import java.util.ArrayList;

public class Main {
    public static void main(String[] args) {
        ArrayList<Integer> sourceList = new ArrayList<>();
        sourceList.add(1);
        sourceList.add(2);
        sourceList.add(3);

        ArrayList<Integer> destinationList = new ArrayList<>();
        for (Integer element : sourceList) {
            destinationList.add(element);
        }

        System.out.println("Source List: " + sourceList);
        System.out.println("Destination List: " + destinationList);
    }
}

方法三:使用Collections.copy()

Collections.copy()方法可以将一个列表的元素复制到另一个列表中,但需要注意目标列表的大小必须至少与源列表一样大。

代码语言:txt
复制
import java.util.ArrayList;
import java.util.Collections;

public class Main {
    public static void main(String[] args) {
        ArrayList<Integer> sourceList = new ArrayList<>();
        sourceList.add(1);
        sourceList.add(2);
        sourceList.add(3);

        ArrayList<Integer> destinationList = new ArrayList<>(Collections.nCopies(sourceList.size(), null));
        Collections.copy(destinationList, sourceList);

        System.out.println("Source List: " + sourceList);
        System.out.println("Destination List: " + destinationList);
    }
}

方法四:使用Java 8的Stream API

通过Stream API可以简洁地实现列表的复制。

代码语言:txt
复制
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

public class Main {
    public static void main(String[] args) {
        ArrayList<Integer> sourceList = new ArrayList<>();
        sourceList.add(1);
        sourceList.add(2);
        sourceList.add(3);

        List<Integer> destinationList = sourceList.stream()
                                                  .collect(Collectors.toList());

        System.out.println("Source List: " + sourceList);
        System.out.println("Destination List: " + destinationList);
    }
}

总结

以上方法都可以实现从一个ArrayList到另一个ArrayList的复制,且不会通过引用共享数据。选择哪种方法取决于具体的需求和代码风格。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的沙龙

领券