合并多个字符串数组保持原顺序并去重java
时间: 2024-10-13 11:16:59 浏览: 47
合并一维字符串数组并去重 C#
在 Java 中,合并多个字符串数组并保持原始顺序且去除重复项,可以使用 List 数据结构结合 HashSet 的特性来实现。这里是一个示例:
```java
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
public class MergeStrings {
public static void main(String[] args) {
String[] arr1 = {"a", "b", "c"};
String[] arr2 = {"c", "d", "e"};
String[] arr3 = {"b", "e", "f"};
// 将数组转换为List
List<String> list1 = new ArrayList<>(Arrays.asList(arr1));
List<String> list2 = new ArrayList<>(Arrays.asList(arr2));
List<String> list3 = new ArrayList<>(Arrays.asList(arr3));
// 合并并去重
List<String> mergedList = new ArrayList<>();
for (List<String> subList : Arrays.asList(list1, list2, list3)) {
mergedList.addAll(subList.stream()
.filter(mergedList::contains) // 如果元素已在集合中,则忽略
.distinct() // 去除重复
.collect(Collectors.toList()));
}
// 打印结果
System.out.println("合并后的去重数组:" + mergedList);
}
}
```
在这个示例中,我们首先将每个数组转换为列表,然后遍历所有列表,并通过 Stream API 和 `distinct()` 方法去掉重复项。`filter(mergedList::contains)` 部分用于检查新元素是否已存在于合并后的列表中,避免添加重复。
阅读全文