На данный момент у меня есть этот код работает, но повторы:Абстрагируясь в ArrayList <E> итерации для создания повторно используемого метода
Iterator<Moo> it6 = moos.iterator();
while (it6.hasNext()) {
Moo m = it6.next();
m.update();
if (!m.isActive())
it6.remove();
}
Iterator<Pip> it7 = pips.iterator();
while (it7.hasNext()) {
Pip s = it7.next();
s.update();
if (!s.isActive())
it7.remove();
}
... and other ...
Где пипсов и мычит определены на этом классе:
public class GameEngine {
private ArrayList<Moo> moos;
private ArrayList<Pip> pips;
...
И класс Moo/Pip like:
public class Moo extends GameSprite {
...
public class Pip extends GameSprite {
...
Могу ли я использовать какой-либо шаблон дизайна (или некоторые другие импланты) ementations), чтобы уменьшить количество написанных кодов и сделать его более элегантным?
Являются '' isActive() 'и' update() 'объявленными в' GameSprite'? –
Вам нужно добавить дополнительную информацию. Просто добавление объявления класса не очень помогает. Где определяется 'isActive()'. Где у вас есть этот код? И что именно делают эти коды, кроме удаления элемента из 'ArrayList'? –
Что говорит @MarkPeters. Если да, и если вы готовы использовать внешнюю библиотеку, у Guava есть 'Iterables.removeIf()'. – fge