У меня Collection<A> ca
и Collection<B> cb
, A
и B
нет общего интерфейса, но у каждого есть свойство String
, называемое something
.Мне нужно отфильтровать ca
и сохранить только те элементы, которые имеют «соответствующее» значение в cb
.
К сожалению, создание общего интерфейса для A
и B
согласно этовопрос / ответ не вариант.
В настоящее время я делаю
Iterator<A> it = ca.iterator();
while ( it.hasNext() ) {
A a = it.next();
if ( !cb.contains(new B(a.getSomething(), ... <known stuff>) )
it.remove;
}
, используя тот факт, что я знаю, что делает B.equals
.Что я могу сделать, чтобы улучшить это, с точки зрения производительности и / или ресурсов?