我有一个ArrayList不同的对象.我试图在一个条件的基础上搜索相同的列表对象对.如果我找到了正确的对,我创建一个新对象并将其添加到新列表中.但是我想避免在objectA与objectB配对时创建一个对象对,而objectB与objectA配对.
直到现在我才找到一个好方法.
2 for循环
for(Object objectA : objectList){
for(Object objectB : objectList){
if(condition){
// create new object
// add to list
}
}
}
Run Code Online (Sandbox Code Playgroud)
问题:我需要对已匹配的对进行标记,否则将导致我想避免的同一对的两个创建对象.它有效,但可能不是最好的解决方案?
迭代器
就像有两个forloops的版本一样,我使用了一个迭代器并从列表中删除了已匹配的对象对.工作,但似乎不好?
Java8 forEach&removeIf
objectList.stream().forEach(posA -> {
objectList.removeIf(posB -> condition);
});
Run Code Online (Sandbox Code Playgroud)
问题:我什么时候创建对象对象...?
哪个是最好的主意 - 或者是否有更好的解决方案我没有得到?