Java语言数组找不同,输出两个相同长度的数组,其中所有不同的元素,用Java语言怎么实现的?思路的原理谁知道
对数组排序,然后逐个比较两个数组的元素,根据当前比较元素的大小将所在数组下标+1:相等同时+1,不相等将小的那个+1,直到比较完这两个数组。排序可用Array.sort()方法。
【以下回答由 GPT 生成】
要找出两个相同长度的数组中不同的元素,可以使用以下步骤:
arr1
和 arr2
,并初始化它们的元素。int[] arr1 = {1, 2, 3};
int[] arr2 = {1, 4, 3};
ArrayList
来存储不同的元素。ArrayList<Integer> differentElements = new ArrayList<>();
differentElements
中。for (int i = 0; i < arr1.length; i++) {
if (arr1[i] != arr2[i]) {
differentElements.add(arr1[i]);
differentElements.add(arr2[i]);
}
}
for (Integer element : differentElements) {
System.out.println(element);
}
完整代码如下:
import java.util.ArrayList;
public class DifferentElementsFinder {
public static void main(String[] args) {
int[] arr1 = {1, 2, 3};
int[] arr2 = {1, 4, 3};
ArrayList<Integer> differentElements = new ArrayList<>();
for (int i = 0; i < arr1.length; i++) {
if (arr1[i] != arr2[i]) {
differentElements.add(arr1[i]);
differentElements.add(arr2[i]);
}
}
for (Integer element : differentElements) {
System.out.println(element);
}
}
}
运行以上代码,将输出不同的元素 2
和 4
。
注意:以上代码假设了两个数组长度相同。如果两个数组长度不同,需要先进行长度检查或者做其他处理。
如果以上解决方案不能满足你的需求,请告诉我。
【相关推荐】
参考demo
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class FindDistinctElements {
public static void main(String[] args) {
int[] array1 = {1, 2, 3, 4, 5};
int[] array2 = {3, 4, 5, 6, 7};
List<Integer> distinctElements = findDistinctElements(array1, array2);
System.out.println("不同的元素有:" + distinctElements);
}
public static List<Integer> findDistinctElements(int[] array1, int[] array2) {
Map<Integer, Integer> elementCount = new HashMap<>();
// 统计第一个数组中的元素出现次数
for (int i = 0; i < array1.length; i++) {
elementCount.put(array1[i], elementCount.getOrDefault(array1[i], 0) + 1);
}
// 统计第二个数组中的元素出现次数,并将不同的元素添加到结果列表中
List<Integer> distinctElements = new ArrayList<>();
for (int i = 0; i < array2.length; i++) {
int count = elementCount.getOrDefault(array2[i], 0);
if (count == 0) {
distinctElements.add(array2[i]);
} else {
elementCount.put(array2[i], count - 1);
}
}
return distinctElements;
}
}
如果元素都是数字好办,可以通过排序,然后从第一个开始比较