我有两个列表,其中有不同的对象。检查一个列表是否包含另一个列表中的元素
List<Object1> list1;
List<Object2> list2;
我要检查,如果从列表1元素list2中存在,基于特定属性(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;
}
但我认为这是一个更好更快的方式来做到这一点:) 有人能提出呢?
谢谢!
首先,当您设置found = true;然后简单地打破;或出来的循环 – Shubhansh 2012-08-03 13:10:42
http://stackoverflow.com/questions/5187888/java-searching-within-a-list-of-objects。此外,为了迅速搜索尝试使用二进制搜索,并改变你的DS套件的情况... – Shubhansh 2012-08-03 13:13:14
他们是否共享除了对象共同的父母? – Woot4Moo 2012-08-03 13:16:59