java复制一个list
时间: 2023-11-21 16:04:17 浏览: 31
可以使用ArrayList的构造函数来复制一个List,代码如下:
List<String> originalList = new ArrayList<>();
// 添加一些元素到originalList中
List<String> copyList = new ArrayList<>(originalList);
这样就可以得到originalList的一个副本copyList,两个List互不影响。
相关问题
java拷贝一个list
要拷贝一个List,可以使用以下两种方式:
1. 使用构造函数进行拷贝
```java
List<String> originalList = new ArrayList<String>();
// 添加一些元素到 originalList
List<String> copiedList = new ArrayList<>(originalList);
```
2. 使用addAll方法进行拷贝
```java
List<String> originalList = new ArrayList<String>();
// 添加一些元素到 originalList
List<String> copiedList = new ArrayList<>();
copiedList.addAll(originalList);
```
这两种方式都可以创建一个新的List,其中包含原始List中的所有元素。请注意,这些方法都是浅拷贝,即它们只拷贝原始List中的引用,而不是复制所有元素的副本。如果需要深拷贝,可以使用Java序列化或其他库。
java 复制一个链表
要复制一个链表,可以使用以下步骤:
1. 遍历原始链表,创建一个新的节点副本,并将其插入新链表中。
2. 在原始链表中移动到下一个节点,并在新链表中移动到下一个节点,重复步骤1直到原始链表末尾。
以下是一个Java函数,它可以复制一个链表:
```java
public ListNode copyList(ListNode head) {
if (head == null) {
return null;
}
ListNode newHead = new ListNode(head.val);
ListNode p = head.next;
ListNode q = newHead;
while (p != null) {
ListNode node = new ListNode(p.val);
q.next = node;
q = node;
p = p.next;
}
return newHead;
}
```
这个函数接收一个链表头节点作为参数,返回一个新的链表头节点。它首先检查原始链表是否为空,如果是,则返回null。否则,它首先创建一个新的头节点(使用原始链表的头节点的值),并用两个指针p和q分别指向原始链表和新链表的头部。然后,它遍历原始链表并将每个节点副本插入新链表中。最后,它返回新链表的头节点。