Страницы

Поиск по вопросам

пятница, 9 ноября 2018 г.

Как вычесть массив из массива?

Есть 2 массива int[], содержащие элементы Drawable.
int[] m1 = new int[]{R.drawable.img1, R.drawable.img2, R.drawable.img3} int[] m2 = new int[]{R.drawable.img1, }
Необходимо найти разницу, те сравнить 2 массива и оставить только неповторяющиеся элементы.
Порядок не важен. Дублирование значений в массивах исключено. Изначально известно что М1 содержит 50 элементов М2, их только нужно оттуда убрать.
Долго не было ответа, решил вот так: Спасибо за помощь.
private int[] delArray(int[] a, int[] b) { List list_A = new ArrayList(); for (int index = 0; index < a.length; index++) { list_A.add(a[index]); } List list_B = new ArrayList(); for (int index = 0; index < b.length; index++) { list_B.add(b[index]); }
list_A.removeAll(list_B);
int[] ret = new int[list_A.size()]; for(int i = 0;i < ret.length;i++) ret[i] = list_A.get(i);
return ret; }


Ответ

Попробуйте так:
final int[] a1 = {12, 14, 15, 62, 12, 23}; final int[] a2 = {1, 12, 32, 23, 22}; List intList = new ArrayList() {{ for (int a : a1) add(a); }}; List intList_2 = new ArrayList() {{ for (int a : a2) add(a); }}; intList.removeAll(intList_2);
for (int a : intList) System.out.println(a);
Итог: 14, 15, 62

Комментариев нет:

Отправить комментарий