【问题标题】:How to create Next() method in an Object class如何在 Object 类中创建 Next() 方法
【发布时间】:2016-07-11 14:51:58
【问题描述】:

我有一个名为 Tile 的类,它具有以下方法:

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

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

现在使用for(Tile item: tiles),我想要一个item.Next(),它将移动到下一个索引。

顺便说一句,tilesList<Tile> tiles = new ArrayList<Tile> 包含所有的瓷砖、颜色和位置。

所以我的问题是如何在Tile 类中实现Next()?我不能做item++,因为它的类型是Tile,等等。

感谢您的帮助。

注意我的Tile 类和ArrayList tiles 位于不同的文件中

【问题讨论】:

  • tiles 如果是List<String> tiles = new ArrayList<String>(),怎么能包含所有的图块。不应该是List<Tile> tiles = new ArrayList<Tile>();吗?如果你改变瓷砖,你可以简单地做 for(Tile tile: files) { tile.setColor(color); } 或任何你必须做的事情。

标签: java class object arraylist next


【解决方案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 类中的任何方法。

【讨论】:

  • 如果我想从 tile 访问同一个 setColor() 方法,如何将它与迭代器一起使用? tileIterator.setColor() 不起作用
  • @evgeni-mironov:试试编辑部分看看。您应该使用 tiles.add(your_tile_object) 将您的平铺对象添加到列表中
  • Tiles 实际上已经是一种 类型,我对此很不满意,你的方式行得通。非常感谢您的帮助
【解决方案2】:

For 循环也按照下面的代码做,

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

【讨论】:

    【解决方案3】:

    您需要实现 Iterable,source,然后您就可以在“for-each-loop”中使用您的类。

    【讨论】:

    • 我考虑过迭代器,但我如何使用迭代器访问 setColor(),因为我需要将图块设置为颜色
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-02
    • 2021-04-07
    • 1970-01-01
    • 2021-12-09
    • 1970-01-01
    • 1970-01-01
    • 2021-09-09
    相关资源
    最近更新 更多