Как использовать Перечисление? - PullRequest
1 голос
/ 18 марта 2012

Я читал перечисления в Java, и каждый встреченный мной пример использует Вектор, а затем использует Vector.elements(), чтобы заставить Перечисление повторяться, используя Enumeration.nextElement().

У меня вопрос, как использовать интерфейс Enumeration с моими классами, например, если я создаю простой класс, который реализует перечисление следующим образом:

public class Tester implements Enumeration{

    private int [] arr = new int[5];
    private int iterator = 0;
    private int count = 0;

    public boolean insert(int item)
    {
        if (count < 5)
        {
            arr[count-1] = item;
            count++;
            return true;
        }
        else
        {
            return false;
        }
    }

    public boolean hasMoreElements() {
        if (iterator >= 4)
        {
            return false;
        }
        else
        {
            return true;
        }
    }

    public Object nextElement()
    {
        if (iterator < count)
        {
            iterator++;
            return (Object)arr[iterator -1];
        }
        else
        {
            iterator = 0;
            return nextElement();
        }
    }
}

Мои вопросы:

  1. Что дальше? Я имею в виду, как я могу использовать интерфейс перечисления с этим учебный класс? Что я могу сделать с этим (пожалуйста, также объясните цель Перечисление и реализация его в классе)?
  2. Как написать функцию Tester.elements (), аналогичную Vector.elements (), который используется в примерах через Интернет?
  3. Каков его эквивалент в C #?

Ответы [ 2 ]

5 голосов
/ 18 марта 2012

Перечисление - это интерфейс Java 1.0, который не должен использоваться.Это было вытеснено java.util.Iterator.Я бы порекомендовал, чтобы вы предпочли это.

0 голосов
/ 18 марта 2012

Взгляните на документацию, она описывает назначение перечислений.http://docs.oracle.com/javase/1.4.2/docs/api/java/util/Enumeration.html

Вы также можете взглянуть на интерфейс Iterator, который является своего рода дубликатом.

...