Сделать с помощью Stream

192
24 мая 2017, 05:00

Подскажите, пожалуйста, можно ли как-нибудь Iterator заменить Stream'ом. Если нет, то может можно как-нибудь укоротить код:

private boolean moveMan(Direction direction){
        int numberCollisionWithWalls=0;
    Iterator<Man> iterator = mans.iterator();
    while (iterator.hasNext()) {
        Man man = iterator.next();
        Position oneStep = direction.next(man.getPosition());
        GameObject gameObject = new GameObject(oneStep.getX(), oneStep.getY());
        if (walls.contains(gameObject)) {
            numberCollisionWithWalls++;
            continue;
        }
        if (badWalls.contains(gameObject)) {
            gameOver();
            return false;
        }
        Position twoStep = direction.next(oneStep);
        if (mans.contains(gameObject)&& walls.contains(new GameObject(twoStep.getX(), twoStep.getY()))) {
            gameOver();
            return false;
        }
        if (getTarget().equals(gameObject)) {
            iterator.remove();
            continue;
        }
        man.setPosition(oneStep);
    }
    if(numberCollisionWithWalls!=mans.size())
    {
        numbertStep++;
    }
    return true;
}
Answer 1

Если Ваша цель в повышении читаемости кода, то обратитесь к книге Роберта Мартина "Чистый код", а именно глава 3. Функции.

READ ALSO
Кастомизация списков

Кастомизация списков

Каким образом можно создать что-то наподобие этого (смизображение)? Свой адаптер писать или как-то ещё можно?

229
Java-конфигурация log4j

Java-конфигурация log4j

Мне нужно что бы при достижении определенного размера, файл лога создавался новый и их могло быть к примеру 5 штук всегоИ после того как будет...

213
импорт классов-наследников

импорт классов-наследников

Как получить доступ к классу из другого пакета? То есть: в пакете packageА есть класс Class1 и класс Class2 extends Class1 В пакете packageB у меня получается заимпортировать...

183