Предположим, у меня есть это:
public class Unit<MobileSuit, Pilot> {
...
List<MobileSuit> mobileSuits;
List<Pilot> pilots;
...
}
И я бы хотел перебрать пару каждого из них самым простым способом вне этого класса.Как мне это сделать?Я думал о том, чтобы сделать это:
public class Unit<MobileSuit, Pilot> {
...
Iterator<MobileSuit> iteratinMechas;
Iterator<Pilot> iteratinPeople;
class IteratorCustom<MobileSuit, Pilot> implements Iterator {
public boolean hasNext() {
return iteratinMechas.hasNext() && iteratinPeople.hasNext();
}
public void remove() {
iteratinMechas.remove();
iteratinPeople.remove();
}
public Object next() {
// /!\
}
}
public Iterator iterator() {
return new IteratorCustom<MobileSuit, Pilot>(mobileSuits, pilots);
}
}
Что-то в этом роде.
В любом случае, проблема в том, что я не могу действительно вернуть только один объект из next (), и я такжеИтератор не может принимать более одного типа.Итак, есть мысли?
Кроме того, я не могу создать новый класс для объединения MobileSuit и Pilot.Мне нужно держать их отдельно, хотя я перебираю оба одновременно.Причина в том, что могут быть мобильные костюмы, в которых нет пилотов, и я не уверен, как это исправить, сохранив их в одном классе.Этот класс должен быть обработан в других местах, поэтому я должен был бы объединить интерфейс вокруг этого и многих других вещей.Предположим, что MobileSuit и Pilot должны быть разделены.