Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Аналог MoveNext на Java. Контейнер.


Автор: 007700 20.12.2012, 09:24
Написала программу на C#. Перевожу ее на Java. Проблема возникла в переводе нижеследующего куска программы. В связи с крайне слабым знанием языка Java, не знаю, есть ли в нем аналог MoveNext. И еще, правильно ли я понимаю, в Java нет контейнера, как такового? Нужно использовать ArrayList? Буду крайне признательна за помощь.
Код

public void AddLorry()
        {
            numCarr++;
            Y += 20;
            //int dX = rand.Next(5, 10);
            int dX = 7;
            Lorry lorry = new Lorry(numCarr, Y, dX, source, vault, ditch, false);
            IEnumerator inum = this.Components.GetEnumerator();
            while (inum.MoveNext())
            {
                Lorry comp = (Lorry)inum.Current;
                comp.evFromLorry += new DelEvFromLorry(lorry.EvFromLorryHandler);
                inum.MoveNext();
                inum.MoveNext();
                lorry.evFromLorry1 += new DelEvFromLorry1(comp.EvFromLorryHandler1);
            }
            base.Add(lorry);
            lorry.Start();
        }


Автор: LSD 20.12.2012, 09:46
Аналогом IEnumerator является http://docs.oracle.com/javase/1.4.2/docs/api/java/util/Iterator.html. Только там немного другой подход, не MoveNext() а после Current, а hasNext() и next(). Т.е. несколько сколько раз вызовешь next() на столько элементов вперед и продвинешься. Плюс нельзя вернуться в начало списка.

Цитата(007700 @  20.12.2012,  10:24 Найти цитируемый пост)
 в Java нет контейнера, как такового?

Что подразумевается под "контейнером"? В Java есть интерфейс Collection, возможно это он.

Автор: 007700 20.12.2012, 10:01
Под контейнером подразумевается вот что: 
Код

class LorryContainer : Container

Автор: LSD 20.12.2012, 10:34
Есть аналог для визуальных компонентов, для невизуальных я не знаю аналога.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)