gpt4 book ai didi

java - 给定两个随机整数数组,打印它们的交集。也就是说,打印两个给定数组中存在的所有元素

转载 作者:行者123 更新时间:2023-12-01 18:36:32 24 4
gpt4 key购买 nike

import java.util.Arrays;

public class temp_2 {

public static void intersection(int[] arr1, int[] arr2){

Arrays.sort(arr1);
Arrays.sort(arr2);
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 if(arr1[i]>arr2[j])
j++;
}
}
}
public static void main(String args[]){
int[] a={1,2,3,3};
int[] b={2,2,3,4,5};
intersection(a,b);
}

}

//它打印正确的答案,但随后给出 java.lang.ArrayIndexOutOfBoundsException 错误。我哪里出错了?我首先对两个数组进行排序,然后使用此方法来打印是否相等或增加索引,除非它位于任一数组的末尾。

最佳答案

您应该更改您的声明:

 (i != arr1.length) || (j != arr2.length)

致:

(i < arr1.length) && (j < arr2.length)

考虑使用List接口(interface)中的retainAll方法:

retainAll(Collection<?> c)

仅保留此列表中指定集合中包含的元素(可选操作)。

关于java - 给定两个随机整数数组,打印它们的交集。也就是说,打印两个给定数组中存在的所有元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60028934/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com