JAVA代码实现 两个List<String>类型合并,第一个列表顺序不变的条件下删除第一个列表中的重复元素,将第二个List<String>列表直接添加到去重后的第一个列表的后面
时间: 2024-02-20 13:00:44 浏览: 26
可以使用以下代码实现:
```java
List<String> list1 = new ArrayList<>();
List<String> list2 = new ArrayList<>();
// 假设已经初始化并填充了 list1 和 list2
// 去重并合并
Set<String> set = new HashSet<>(list1);
list1.clear();
list1.addAll(set);
list1.addAll(list2);
```
解释一下代码:
1. 首先创建两个空的列表 `list1` 和 `list2`,并假设已经初始化并填充了它们。
2. 创建一个 `Set` 集合,利用其去重的特性,将 `list1` 中的重复元素删除,并保存到 `set` 中。
3. 清空 `list1`,并将去重后的元素重新添加到 `list1` 中。
4. 最后将 `list2` 直接添加到 `list1` 的后面。
注意:这个方法会改变原始的 `list1`,如果需要保留原始的 `list1`,可以先复制一份再进行操作。
相关问题
JAVA代码实现 两个List<String>类型合并,删除重复元素,按照第二个List<String>列表排序
下面是 Java 代码实现,将两个 List<String> 类型的列表合并成一个列表,删除重复元素,按照第二个 List<String> 列表排序:
```
List<String> list1 = new ArrayList<>();
list1.add("apple");
list1.add("banana");
list1.add("orange");
List<String> list2 = new ArrayList<>();
list2.add("banana");
list2.add("grape");
list2.add("apple");
List<String> list3 = new ArrayList<>();
list3.addAll(list1);
list3.addAll(list2);
// 删除重复元素
List<String> distinctList = list3.stream().distinct().collect(Collectors.toList());
// 按照 list2 列表排序
distinctList.sort((a, b) -> {
int indexA = list2.indexOf(a);
int indexB = list2.indexOf(b);
return Integer.compare(indexA, indexB);
});
System.out.println(distinctList);
```
这段代码中,我们先创建了两个 List<String> 类型的列表 list1 和 list2,然后使用 addAll() 方法将它们合并成一个列表 list3。接下来,我们使用 Java 8 中的流式 API 将列表中的重复元素去重,得到 distinctList 列表。最后,我们使用 sort() 方法按照 list2 列表中元素的顺序对 distinctList 列表进行排序。最终输出排序后的列表。
JAVA代码实现 两个List<String>类型数据,第一个列表顺序不变的条件下删除第一个列表中的重复元素
可以使用以下代码实现:
```java
List<String> list1 = new ArrayList<>();
List<String> list2 = new ArrayList<>();
// 假设已经初始化并填充了 list1 和 list2
// 去重
Set<String> set = new HashSet<>(list1);
list1.clear();
list1.addAll(set);
```
解释一下代码:
1. 首先创建两个空的列表 `list1` 和 `list2`,并假设已经初始化并填充了它们。
2. 创建一个 `Set` 集合,利用其去重的特性,将 `list1` 中的重复元素删除,并保存到 `set` 中。
3. 清空 `list1`,并将去重后的元素重新添加到 `list1` 中。
注意:这个方法会改变原始的 `list1`,如果需要保留原始的 `list1`,可以先复制一份再进行操作。