Próbuję napisać funkcję, która zwraca różnicę między dwoma tablicami. Tablice wejściowe nie są posortowane. Zakładam, że wszystkie elementy w tablicach wejściowych są unikalne. Dla przykładu:Jak znaleźć różnicę między dwiema liczbami całkowitymi?
Wejście: arr1 = [1,2,3,5,4]
arr2 = [1,2,3]
oczekiwany wynik: [4,5]
Próbuję zaimplementować to przy użyciu ArrayList, ale nie może znaleźć problem z mojego kodu. Oto ona:
public class Difference{
ArrayList<Integer> diff(int m[],int n[])
{
int mlen = m.length;
int nlen = n.length;
ArrayList<Integer> arr1 = new ArrayList<Integer>(Arrays.asList(m));
ArrayList<Integer> arr2 = new ArrayList<Integer>(Arrays.asList(n));
if(mlen>nlen)
{
arr1.removeAll(arr2);
return arr1;
}
else
{
arr2.removeAll(arr1);
return arr2;
}
}
public static void main(String args[])
{
Difference obj = new Difference();
int a[] = {1,2,3,4,5};
int b[] = {1,2,3};
System.out.println(obj.diff(a,b));
}
}
Czy zamówienie ma znaczenie? –
Czy próbowałeś debugować swoją aplikację? – f1sh
@JeanLogeart Czy masz na myśli kolejność na wyjściu? – coder7777