Java 中查找两个数组中相同元素的方法有:1. 使用 set 集合存储第一个数组的元素,遍历第二个数组并检查是否存在于 set 中;2. 使用两个指针比较数组元素,相等则记录为相同元素,不等则分别移动指针。
Java 中查找两个数组中相同元素的方法
在 Java 中,可以使用以下方法查找两个数组中相同的元素:
1. 使用 Set
- 使用 Set 集合存储第一个数组中的所有元素。
- 遍历第二个数组中的每个元素,并检查它是否存在于 Set 中。
- 如果存在,则它是一个相同元素。
示例代码:
立即学习“Java免费学习笔记(深入)”;
import java.util.Arrays; import java.util.HashSet; import java.util.Set; public class FindSameElements { public static void main(String[] args) { int[] arr1 = {1, 2, 3, 4, 5}; int[] arr2 = {3, 4, 5, 6, 7}; Set<Integer> set = new HashSet<>(Arrays.asList(arr1)); for (int element : arr2) { if (set.contains(element)) { System.out.println("相同元素:" + element); } } } }
2. 使用两个指针
- 将两个指针都设置为指向数组的第一个元素。
- 比较两个指针指向的元素。
- 如果相等,则它是一个相同元素。
- 如果第一个指针指向的元素小于第二个指针指向的元素,则将第一个指针向后移动。
- 如果第一个指针指向的元素大于第二个指针指向的元素,则将第二个指针向后移动。
示例代码:
立即学习“Java免费学习笔记(深入)”;
public class FindSameElements { public static void main(String[] args) { int[] arr1 = {1, 2, 3, 4, 5}; int[] arr2 = {3, 4, 5, 6, 7}; int i = 0; int j = 0; while (i < arr1.length && j < arr2.length) { if (arr1[i] == arr2[j]) { System.out.println("相同元素:" + arr1[i]); i++; j++; } else if (arr1[i] < arr2[j]) { i++; } else { j++; } } } }