Проверить, содержит ли один список элемент из другого

У меня есть два списка с разными объектами в них.

List<Object1> list1;
List<Object2> list2;

Я хочу проверить, существует ли элемент из списка1 в списке2 на основе определенного атрибута (Object1 и Object2 имеют (среди прочих ), один общий атрибут (с типом Long ), с именем attributeSame ).

прямо сейчас я делаю это так:

boolean found = false;
for(Object1 object1 : list1){
   for(Object2 object2: list2){
       if(object1.getAttributeSame() == object2.getAttributeSame()){
           found = true;
           //also do something
       }
    }
    if(!found){
        //do something
    }
    found = false;
}

Но я думаю, что есть лучший и более быстрый способ сделать это :)Может кто-нибудь предложить?

Спасибо!

94
задан Ned 3 August 2012 в 13:21
поделиться