Iteratory

0

Witam.

Mam za zadanie odczytywać ArrayListe za pomocą iteratora. Wcześniej na zajęciach korzystaliśmy z jakiegoś gotowego, tylko go kopiowaliśmy i teraz mam z tym problem. Próbowałem go wykorzystać, ale coś mi nie szło, ale może da się to zrobić za pomocą tego wbudowanego? Tylko mam problem, że nie do końca wiem jak. Proszę o pomoc.

public class Karty {

	int kolor;
	int wartosc;
	
	public Karty(){
		kolor=0;
		wartosc=1;
	}
	
	public Karty(int kolor, int wartosc){
		this.kolor=kolor;
		this.wartosc=wartosc;
	}
}
import java.util.ArrayList;
import java.util.Random;


public class Main {

	ArrayList<Karty> karty = new ArrayList<Karty>();
	

	public void tworzenieListy(){
		Random losowanieKart = new Random();
		for(int i=0;karty.get(i).wartosc==0;i++){
			int wartosc = losowanieKart.nextInt(13);
			int kolor = losowanieKart.nextInt(3);
			karty.add(i, new Karty(kolor, wartosc));
		}		
	}
	public void wyswietlanieListy(){
		PrzegladOdczyt it = new PrzegladOdczyt(karty.get(1)); // to jest za pomocą tego gotowego. 1 wziąłem do testu.
		it.first();
		while(!it.isDone()){ 
			System.out.println(it.current());
			it.next();
		}
	}
	public static void main(String[] args) {
		

	}

}

Jak najadę na

PrzegladOdczyt it = new PrzegladOdczyt(karty.get(1));

to wyświetla mi się, że konstruktor dla PrzegladOdczyt(karty) jest nie zdefiniowany. Da radę ewentualnie jakoś go zdefiniować? Tylko jak ?:)

0

No to pokaż klasę PokazOdczyt. Konstruktor ma taką samą nazwę jak klasa ( twój także przyjmuje argument ).

0

Nie programowałem dużo w Java, ale tu:

karty.get(1)

przesyłasz skonstruowany obiekt Karty na pierwszej pozycji listy generycznej karty, zatem konstruktor klasy PrzegladOdczyt winien mieć w parametrze:

public PrzegladOdczyt(Karty karta)
    {
     _array=array;
     _first=0;
     _last=array.length-1;

No i tutaj do zmiany
    }

Konstruktor ten oczekuje tablicy przechowującej obiekty typu "Karty" i owszem ty taką listę generyczną masz, ale wsadzasz do niego konkretny obiekt, nie kolekcje.

0

A co się dzieje po zmianie parametru konstruktora? Jeśli nawet przesyłasz muż ArrayList<Karty> to zmień mu wejście na

ArrayList<Karty> listaKart

.

1 użytkowników online, w tym zalogowanych: 0, gości: 1