• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Trudności przy implementacji iteratora

Cloud VPS
0 głosów
196 wizyt
pytanie zadane 3 maja 2019 w Java przez MikeP Początkujący (310 p.)

Chce utworzyć iterator, ale także ułatwić przebieg interwału, obsługując składanie foreach Java jak w ponizszym przykladzie.

for(int i:panel2(1,5))
    System.out.println(i); // devuelve 1 2 3 4 5

Muszę zaimplementować Iterable, co wymaga wykonania metody iterator.

W tej chwili próbowałem:

import java.util.Iterator;
import java.util.NoSuchElementException;

public class Panel implements Iterable<Integer>{

   int begin;
   int end;

   // alguna lógica acá para llenar los valores de begin y de end, como constructor y/o setter y getter.
    public Panel(int begin, int end){
        this.begin = begin;
        this.end = end;

    }

    @Override
    public Iterator<Integer> iterator() {

        return panel1(begin,end);
    }

    private static Iterator<Integer> panel1(final int begin,final int end){
        Iterator<Integer> it = new Iterator<Integer>(){

            private int nextValue = begin;
            private final int max = end;

            public boolean hasNext() {
                return nextValue <= max;
            }

            public Integer next() {
                if (!hasNext()) {
                    throw new NoSuchElementException();
                }
                return Integer.valueOf(nextValue++);
            }

            public void remove() {
                throw new UnsupportedOperationException();
            }
        };
        return it;
    }

    public static void main(String[] args) {

        Panel panel = new Panel(1,5);
        for(int i:panel)
          System.out.println(i);
    }
}

Ale to mnie zwraca:

C:\Users\antoi\Documents\Programming\Julien\TD7_iterators>java Panel.java
error: class found on application class path: Panel

 

1 odpowiedź

0 głosów
odpowiedź 3 maja 2019 przez mbabane Szeryf (79,260 p.)
wybrane 3 października 2019 przez MikeP
 
Najlepsza

Rozumiem, że chcesz uruchomić program bezpośrednio z wiersza poleceń. Jeśli tak to najpierw trzeba kod, czyli plik z rozszerzeniem java, skompilować poleceniem javac. A z tego co widzę to chcesz uruchomić plik z kodem źródłowym czyli wykonujesz java Panel.java

Zerknij tutaj:

https://www.samouczekprogramisty.pl/java-z-linii-polecen/

lub

https://javastart.pl/baza-wiedzy/java-podstawy-jezyka/pierwszy-program

Ewentualnie jakiś youtube.

Podobne pytania

0 głosów
0 odpowiedzi 302 wizyt
pytanie zadane 6 maja 2020 w Java przez Schulz0123 Początkujący (330 p.)
0 głosów
1 odpowiedź 358 wizyt
pytanie zadane 4 marca 2019 w Java przez Tom_Ja Dyskutant (7,970 p.)
0 głosów
3 odpowiedzi 766 wizyt
pytanie zadane 3 listopada 2018 w Java przez michalpdg Nowicjusz (120 p.)

93,487 zapytań

142,423 odpowiedzi

322,773 komentarzy

62,908 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...