@student_1

Как сравнить два ArrayList`a по их содержимому?

Есть два листа:
private List rbsList;

и
private List partnerList;

Я хочу сравнит два листа, по их содержимому в объекте.
Но мой код не работает.
Вопрос: Что тут не так и как правильно реализовать?
код:
private List<PaymentRBS> rbsList;
    private List<PaymentPartner> partnerList;

    public void compare() {
        List<PaymentPartner> found = new ArrayList<>();
        for (PaymentRBS rbs : rbsList) {
            found = partnerList.stream()
                    .filter(paymentPartner ->
                    paymentPartner.getAccount().equals(rbs.getAccount()) && paymentPartner.getSum() == rbs.getSum())
                    .collect(Collectors.toList());
        }

        found.forEach(System.out::println);

    }
  • Вопрос задан
  • 575 просмотров
Решения вопроса 1
xez
@xez Куратор тега Java
TL Junior Roo
Я бы сделал так:
1. Сделал бы мапу из обоих листов, где ключ - номер, счёта, а значение - сам объект.
2. По этому ключу объединил бы обе мапы в одну, но значение было быTupple2<PaymentRBS, PaymentPartner>. Т.о. в одном таппле были бы оба объекта с одинаковыми номером счета.
3. По значениям в итоговой коллекции можно будет производить все интересующие операции.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Bell Integrator Ульяновск
До 400 000 ₽
Bell Integrator Хабаровск
До 400 000 ₽
Bell Integrator Ижевск
До 400 000 ₽
18 апр. 2024, в 01:12
150000 руб./за проект
18 апр. 2024, в 00:10
50000 руб./за проект