Java怎么将一个ArrayList拷贝到另一个ArrayList
时间: 2023-08-20 13:38:18 浏览: 70
可以使用 ArrayList 的 `addAll` 方法将一个 ArrayList 拷贝到另一个 ArrayList,示例代码如下:
```java
ArrayList<String> list1 = new ArrayList<>();
list1.add("apple");
list1.add("banana");
list1.add("orange");
ArrayList<String> list2 = new ArrayList<>();
list2.addAll(list1); // 将 list1 拷贝到 list2
System.out.println(list2); // 输出 [apple, banana, orange]
```
在这个示例中,我们首先创建了一个 ArrayList list1,并向其中添加了三个元素。然后,我们创建了一个新的 ArrayList list2,并使用 `addAll` 方法将 list1 中的元素拷贝到 list2 中。最后,我们输出 list2,可以看到它已经成功地包含了 list1 中的所有元素。
相关问题
java 集合拷贝到另一个集合
在 Java 中,可以使用以下方法将一个集合拷贝到另一个集合:
1. 使用构造函数
可以使用另一个集合作为参数来创建一个新的集合,并将原始集合的所有元素添加到新集合中。例如:
```java
List<String> list1 = new ArrayList<>();
list1.add("A");
list1.add("B");
list1.add("C");
List<String> list2 = new ArrayList<>(list1);
```
在上面的示例中,我们使用 `ArrayList` 的构造函数创建了一个新的集合 `list2`,并将 `list1` 中的所有元素添加到了 `list2` 中。
2. 使用 addAll() 方法
可以使用 `addAll()` 方法将原始集合的所有元素添加到另一个集合中。例如:
```java
List<String> list1 = new ArrayList<>();
list1.add("A");
list1.add("B");
list1.add("C");
List<String> list2 = new ArrayList<>();
list2.addAll(list1);
```
在上面的示例中,我们创建了一个新的空集合 `list2`,然后使用 `addAll()` 方法将 `list1` 中的所有元素添加到了 `list2` 中。
3. 使用 clone() 方法
可以使用 `clone()` 方法创建原始集合的一个副本,并将副本赋值给另一个变量。例如:
```java
List<String> list1 = new ArrayList<>();
list1.add("A");
list1.add("B");
list1.add("C");
List<String> list2 = (List<String>) list1.clone();
```
在上面的示例中,我们使用 `clone()` 方法创建了原始集合 `list1` 的一个副本,并将副本赋值给了 `list2` 变量。需要注意的是,在使用 `clone()` 方法时,原始集合的元素类型必须是可复制的。
fastjson 深拷贝一个ArrayList对象
你可以使用 fastjson 库来实现深拷贝一个 ArrayList 对象。下面是一个示例代码:
```java
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
public class Main {
public static void main(String[] args) {
ArrayList<String> sourceList = new ArrayList<>();
sourceList.add("item1");
sourceList.add("item2");
// 使用 fastjson 进行深拷贝
ArrayList<String> deepCopyList = JSON.parseObject(JSON.toJSONString(sourceList), new TypeReference<ArrayList<String>>() {});
// 修改原始列表
sourceList.add("item3");
// 打印深拷贝列表和原始列表
System.out.println("Deep Copy List: " + deepCopyList);
System.out.println("Source List: " + sourceList);
}
}
```
在上述代码中,我们使用 `JSON.toJSONString()` 方法将源列表对象转换为 JSON 字符串,然后使用 `JSON.parseObject()` 方法将 JSON 字符串转换回 ArrayList 类型,并指定 `TypeReference<ArrayList<String>>` 作为泛型参数来确保正确的类型转换。这样就得到了一个 ArrayList 的深拷贝。
注意:为了使用 fastjson 库,你需要添加相应的依赖。你可以在 Maven 中添加以下依赖项:
```xml
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.76</version>
</dependency>
```
请注意,这只是一个示例,你可以根据实际情况进行修改和适配。