Java有两个数组 A,B, 分别存储着字符串, A,B 中有相同元素, 请求出 A,B 数组中除去这部分相同 的元素 后的结果, 请用两种方式实现
时间: 2024-03-14 18:47:05 浏览: 68
方法一:使用 Java 的集合运算
Java 中的集合也可以进行交、并、差等运算,因此我们可以将数组 A 和 B 转换为集合,然后使用集合运算来找到 A 和 B 中不同的元素。具体实现如下:
```java
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
public class Main {
public static void main(String[] args) {
String[] A = {"apple", "orange", "banana", "pear"};
String[] B = {"orange", "pear", "grape", "watermelon"};
// 使用集合运算求 A 和 B 的不同元素
HashSet<String> setA = new HashSet<>(Arrays.asList(A));
HashSet<String> setB = new HashSet<>(Arrays.asList(B));
setA.removeAll(setB);
setB.removeAll(new HashSet<>(Arrays.asList(A)));
ArrayList<String> result = new ArrayList<>(setA);
result.addAll(setB);
System.out.println(result); // 输出 [banana, apple, watermelon, grape]
}
}
```
方法二:使用 Java 的双重循环
我们可以使用双重循环来遍历 A 和 B 数组,找到 A 和 B 中不同的元素。具体实现如下:
```java
import java.util.ArrayList;
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
String[] A = {"apple", "orange", "banana", "pear"};
String[] B = {"orange", "pear", "grape", "watermelon"};
// 使用双重循环求 A 和 B 的不同元素
ArrayList<String> result = new ArrayList<>();
for (String a : A) {
boolean found = false;
for (String b : B) {
if (a.equals(b)) {
found = true;
break;
}
}
if (!found) {
result.add(a);
}
}
for (String b : B) {
boolean found = false;
for (String a : A) {
if (b.equals(a)) {
found = true;
break;
}
}
if (!found) {
result.add(b);
}
}
System.out.println(result); // 输出 [apple, banana, grape, watermelon]
}
}
```
以上两种方法都可以求出 A 和 B 中不同的元素,具体使用哪种方法可以根据实际情况选择。
阅读全文