我有一个名为Tile
的课程,其中包含以下方法:
public Tile(Shape tile, Color color, int position), getTile(),
setTile(), getColor(), setColor(), getPosition(), setPosition()
现在使用for(Tile item: tiles)
我希望item.Next()
能够转移到下一个索引。
顺便说一句tiles
List<Tile> tiles = new ArrayList<Tile>
包含所有图块,颜色和位置。
所以我的问题是如何在Next()
课程中实施Tile
?我不能item++
Tile
,因为它类型为Tile
等。
感谢您的帮助。
注意我的ArrayList tiles
课程和{{1}}位于不同的文件中
答案 0 :(得分:2)
For循环也执行以下代码所需的
List<Tile> tiles = new ArrayList<Tile>();
Iterator<Tile> tileIterator= tiles.iterator();
while (tileIterator.hasNext()) {
Tile tile = tileIterator.next();
tile.setColor("green");
}
答案 1 :(得分: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>();
然后将“tiles”项添加到此列表中。然后使用下面的代码
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());
}
注意强>
将tile对象设置为t后,可以使用t对象使用Tile类中的任何方法。
答案 2 :(得分:0)
您需要实现Iterable,source,然后您就可以在&#34; for-each-loop&#34;中使用您的课程。