Соединение двух списков в Java - PullRequest
1 голос
/ 22 февраля 2012

У меня есть списки разных классов, скажем, A и B соответственно.Определение этих классов следующее:

class A {
 int field1;
 int field2;
}

class B {
 int field1;
 int field3;
}

class C {
 int field1;
 int field2;
 int field3;
}

Я хочу выполнить операцию соединения (аналогично соединению с базой данных) на A и B, над полем 1 и заполнить результат в C.

Я могу перебирать списки и делать это.Но я просто хотел проверить, существуют ли какие-либо библиотечные методы, которые делают подобные вещи.

Ответы [ 3 ]

0 голосов
/ 22 февраля 2012

Может быть, с помощью метода в библиотеке в коллекциях Apache:

import org.apache.commons.collections.ListUtils;    

List<?> newListC = ListUtils.intersection(list1, list2);

Надеюсь, это поможет.

0 голосов
/ 22 февраля 2012

Вы можете добавить объекты любого класса в список (если ваш список не определен как универсальный).Но когда вы вернете каждый объект из списка, вы не узнаете, к какому объекту относится этот тип.

0 голосов
/ 22 февраля 2012

Если это единственные поля, которые вы используете, просто выполните итерации вручную.

Для больших наборов данных сгруппируйте данные в Коллекции и примените алгоритм декартовых произведений .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...