java合并两个列表
时间: 2023-09-03 22:06:01 浏览: 59
可以使用Java中的List接口的addAll()方法来合并两个列表。以下是示例代码:
```java
List<String> list1 = new ArrayList<>();
list1.add("A");
list1.add("B");
List<String> list2 = new ArrayList<>();
list2.add("C");
list2.add("D");
list1.addAll(list2);
System.out.println(list1); // Output: [A, B, C, D]
```
在上面的代码中,我们首先创建了两个列表list1和list2。然后,我们使用addAll()方法将list2中的元素添加到list1中。最后,我们打印了合并后的列表list1。
相关问题
java合并两个array
在Java中,有多种方法可以将两个数组合并成一个新的数组。这里列举几种常见的方法:
1. **Array.concat()**: 如果两个数组类型相同,你可以直接使用`Array.concat()`方法。例如:
```java
int[] array1 = {1, 2};
int[] array2 = {3, 4, 5};
int[] mergedArray = Array.concat(array1, array2);
```
2. **ArrayList**: 如果你想保持动态大小并允许添加元素,可以先将数组转换为ArrayList,然后使用`addAll()`方法:
```java
List<Integer> list1 = new ArrayList<>(Arrays.asList(1, 2));
List<Integer> list2 = new ArrayList<>(Arrays.asList(3, 4, 5));
list1.addAll(list2);
int[] mergedArray = list1.toArray(new Integer[0]);
```
3. **手动遍历** (适合于数组长度较小的情况):
```java
int[] array1 = {1, 2};
int[] array2 = {3, 4, 5};
int length = Math.max(array1.length, array2.length);
int[] mergedArray = new int[length];
System.arraycopy(array1, 0, mergedArray, 0, array1.length);
System.arraycopy(array2, 0, mergedArray, array1.length, array2.length);
```
java合并两个有序链表
在Java中,合并两个有序链表通常是通过迭代或递归的方式来实现的,因为链表节点本身不支持直接的数组操作。下面是一个简单的迭代方法示例:
```java
public class ListNode {
int val;
ListNode next;
ListNode(int x) { val = x; }
}
public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
if (l1 == null) return l2;
if (l2 == null) return l1;
// 如果l1的值小于l2,则l1作为头结点,否则反之
ListNode head;
if (l1.val < l2.val) {
head = l1;
head.next = mergeTwoLists(l1.next, l2);
} else {
head = l2;
head.next = mergeTwoLists(l1, l2.next);
}
return head;
}
```
这个函数会比较两个链表当前节点的值,选择较小的那个作为新链表的下一个节点,并继续这个过程直到遍历完其中一个链表。剩下的另一个链表则会被添加到结果链表的后面。