gpt4 book ai didi

Java匹配数组

转载 作者:行者123 更新时间:2023-11-29 04:32:57 26 4
gpt4 key购买 nike

接受两个整数数组的方法。该方法返回一个整数数组,其中包含数组 int[]a 中的所有元素,这些元素也按照它们在 int[]a 中的原始顺序出现在数组 int[]b 中。

这是它应该输出的内容:

input: {1, 2, 3, 4, 5, 6, 7, 3, 8, 9, 2, 10}, {3, 2, 7, 12, 3, 9, 5, 2}

output: {2, 3, 5, 7, 3, 9, 2}



input: {4, 7, 1, 6, 9, 2, 3, 1}, {8, 5, 2, 1, 9, 4}

output: {4, 1, 9, 2, 1}

我尝试过这样的事情只是为了测试它以了解它,但我还是做不到。

    public static void arraysMatching(int[] s1, int[] s2) {
ArrayList<Integer> storage = new ArrayList<Integer>();
for (int i = 0; i <= s1.length; i++) {
for (int j = 0; j <= s2.length; j++) {
if (s2[j] == s1[i]) {
storage.add(s2[j]);
break;
}
}
break;
}
System.out.println(storage);

}

测试用例:

int [] m1 = {1, 2, 3, 4, 5, 6, 7, 3, 8, 9, 2, 10};
int [] m2 = {3, 2, 7, 12, 3, 9, 5, 2};
System.out.println(Arrays.toString(arraysMatching(m1, m2)));
Should print out [2, 3, 5, 7, 3, 9, 2]

最佳答案

添加到 Codors answer , 让方法返回 int[]:

public static int[] arraysMatching(int[] s1, int[] s2) {

ArrayList<Integer> storage = new ArrayList<>();
//for (int i = 0; i <= s1.length; i++) {
//wrong. change <= to < or better:
for (int i : s1) {

//for (int j = 0; j <= s2.length; j++) {
//wrong. change <= to < or better:
for (int j : s2) {
if (j == i) {
storage.add(j);
break;
}
}
}

//if you can use streams do
//return storage.stream().mapToInt(i->(int)i).toArray();

//alternatively
int[] returnArray = new int[storage.size()];
for(int i=0; i< storage.size(); i++) {
returnArray[i]=storage.get(i);
}
return returnArray;
}

因此您可以将它与 System.out.println(Arrays.toString(arraysMatching(m1, m2))); 一起使用

关于Java匹配数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43041690/

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