2016-03-24 8 views
0

私は次のメソッドがありTileというクラスがあります。今、私は移動するitem.Next()持ちたいfor(Tile item: tiles)を使用してObjectクラスに次の()メソッドを作成する方法

public Tile(Shape tile, Color color, int position), getTile(), 

setTile(), getColor(), setColor(), getPosition(), setPosition()

を次のインデックスに移動します。

btw tilesList<Tile> tiles = new ArrayList<Tile>にはすべてのタイル、色および位置が含まれています。

TileクラスにNext()を実装するにはどうすればよいですか?私はTileなどなどのitem++はできません。

ありがとうございます。

に注意してください私のTileクラスとArrayList tilesは異なるファイルに

+0

として必要ありません。 'List ではありませんか?tiles = new ArrayList ();'?タイルを変更すると、簡単にできます(タイルタイル:ファイル){tile.setColor(color); }または何をする必要があります。 – Philipp

答えて

2

も、それは `リスト タイルは=新しいArrayListを ()` `であればtiles`はすべてのタイルを含めることができますどのように以下のコード、

List<Tile> tiles = new ArrayList<Tile>(); 
Iterator<Tile> tileIterator= tiles.iterator(); 
while (tileIterator.hasNext()) { 
    Tile tile = tileIterator.next(); 
    tile.setColor("green"); 
} 
0

に位置しているあなたは、あなたが「のために、各ループ」で、あなたのクラスを使用することができます、反復処理可能、sourceを実装する必要があります。

+0

イテレータについて考えましたが、イテレータを使ってsetColor()にアクセスするにはどうすればよいですか? –

1

イテレータに挿入するだけです。

Iterator<Tile> tileIterator= tiles.iterator(); 
    while (tileIterator.hasNext()) { 
     System.out.println(tileIterator.next()); 
    } 

編集

変更あなたの

List<String> tiles = new ArrayList<String> 

List<Tile> tiles = new ArrayList<Tile>(); 

次に、このリストへの "タイル" の項目を追加します。あなたはトンオブジェクトを使用して、クラスのタイル内の任意の方法を使用することができますtにタイルオブジェクトを取得したら、次に注意

コードの下に

Iterator<Tile> tileIterator = tiles.iterator(); 

    Tile t; 
    while (tileIterator.hasNext()) { 
     t = tileIterator.next(); 
     System.out.println(t.getColor().toString()); 
     t.setColor(your_color); 
     System.out.println(t.getColor().toString()); 
    } 

を使用しています。 Forループ

+0

何をタイルから同じsetColor()メソッドにアクセスするにはどうすれば使用できますかイテレータと一緒に? tileIterator.setColor()は動作しません –

+0

@ evgeni-mironov:編集セクションを試してみてください。 tiles.add(your_tile_object) –

+0

を使ってリストにタイルオブジェクトを追加する必要があります。タイルはすでに実際にはタイプでした。助けてくれてありがとう –

関連する問題