线性表的合并java怎么写
时间: 2024-09-19 18:14:54 浏览: 30
线性表的合并通常是指将两个已排序的线性表合并成一个新的已排序列表。在Java中,可以采用归并排序的思想来实现这个功能。下面是一个简单的示例,假设我们有两个List对象`list1`和`list2`:
```java
import java.util.ArrayList;
import java.util.List;
public class LinearListMerge {
public static void mergeLists(List<Integer> list1, List<Integer> list2) {
// 创建一个新的ArrayList来存放结果
List<Integer> mergedList = new ArrayList<>();
// 有两个空列表的情况
if (list1.isEmpty()) {
mergedList.addAll(list2);
} else if (list2.isEmpty()) {
mergedList.addAll(list1);
} else {
// 使用while循环,直到其中一个列表为空
while (!list1.isEmpty() && !list2.isEmpty()) {
// 比较当前元素,将较小的一个添加到结果列表,并从原列表移除
if (list1.get(0) <= list2.get(0)) {
mergedList.add(list1.remove(0));
} else {
mergedList.add(list2.remove(0));
}
}
// 如果还有剩余元素,则直接添加到结果列表
mergedList.addAll(list1.isEmpty() ? list2 : list1);
}
System.out.println("Merged list: " + mergedList); // 打印合并后的列表
}
public static void main(String[] args) {
List<Integer> list1 = new ArrayList<>(Arrays.asList(1, 4, 5));
List<Integer> list2 = new ArrayList<>(Arrays.asList(2, 3, 6));
mergeLists(list1, list2);
}
}
```
在这个例子中,`mergeLists`函数接收两个列表作为输入,通过比较它们的第一个元素,选择较小的元素添加到新列表,直到其中一个列表为空。最后,如果还有一个非空列表,就将其全部添加到新列表。