Как получить уникальное значение из двух массивов?
Допустим имеются три списочных массива (ArrayList).
Первый и второй объект имеют по два поля типа int (id) и string (value). Третий хранит список уже используемых пар (вопрос в каком виде, открытый).
Здравствуйте!
Не совсем понятен Ваш вопрос. Рекомендую отредактировать его и более подробно пояснить. Также желательно предоставить сниппеты кода.
Допустим имеются три списочных массива (ArrayList). Первый и второй объект имеют по два поля типа int (id) и string (value).
У вас имеется 3 коллекции типа ArrayList. Уточните, что именно хранится в данных коллекциях - String, Map (ArrayList<Map<id, String>>) или некий pojo. А то непонятно о каком объекте идет речь и что хранится в коллекциях
Третий хранит список уже используемых пар (вопрос в каком виде, открытый).
Ну вы можете хранить и Map, Set, pojо. В общем, постарайтесь более подробно написать, что требуется
Задание не понятно до конца, но предположим, что Вам надо найти все пары (id,string) не сущестующие в обеих массивах одновременно.
Просто и понятно (мне, без стримов) сделать через Set.
Свои пары создавайте в классе с двумя полями int id и String string. Перезапишите в этом классе методы из класса Object hashCode и equals.
В hashCode проще всего преобразовывать int в строку и добавлять спереди к string и брать от новой строки её hashCode. Оно сработает!
В equals сравнивайте this и obj по id и по string.
Возвращайте true только если они попарно равны в обоих объектах.
Например return (this.id == obj.id) && (this.string.equals(obj.string);
Затем засовывайте все пары в любой очереди из обеих массивов в соответствующий Set. Главное, чтобы каждую сунуть только один раз! После завершения засовывания Вы имеет Set с уникальными парами. Всё!
Как извлечь из Set все пары в виде ArrayList - дело вкуса.