java求字符串数组的交并差
时间: 2024-05-16 14:13:13 浏览: 71
交集(即两个数组中都有的元素):
```java
public static String[] intersection(String[] arr1, String[] arr2) {
List<String> list = new ArrayList<>();
for (String s : arr1) {
if (Arrays.asList(arr2).contains(s) && !list.contains(s)) {
list.add(s);
}
}
return list.toArray(new String[0]);
}
```
并集(即两个数组中所有元素的集合):
```java
public static String[] union(String[] arr1, String[] arr2) {
Set<String> set = new HashSet<>(Arrays.asList(arr1));
set.addAll(Arrays.asList(arr2));
return set.toArray(new String[0]);
}
```
差集(即只在其中一个数组中出现的元素):
```java
public static String[] difference(String[] arr1, String[] arr2) {
List<String> list = new ArrayList<>(Arrays.asList(arr1));
for (String s : arr2) {
if (list.contains(s)) {
list.remove(s);
}
}
return list.toArray(new String[0]);
}
```
需要注意的是,以上方法都是基于数组的元素不重复的情况下实现的。如果数组中包含重复元素,需要针对性地进行修改。
阅读全文