为了账号安全,请及时绑定邮箱和手机立即绑定

将列表传递给另一个类进行迭代的最佳方法是什么

将列表传递给另一个类进行迭代的最佳方法是什么

心有法竹 2021-07-09 14:11:25
我正在为 ArrayList 创建一个 ShapeList 类,然后我想将此列表传递给 ShapeDrawer 类(我在 ShapeList 构造函数中实例化),以便它可以在 ShapeDrawer 类中迭代。现在,在 ShapeDrawer 类构造函数中,预期的类型应该是 List 还是 ShapeList?如果我输入 List,那么我不能使用 ShapeList 方法,如果我让它输入 ShapeList,那么 Eclipse 会说将 ShapeDrawer 构造函数更改为 List...我也想将此列表传递给其他类,但有同样的问题. 非常感谢您的帮助!!public class ShapeList implements Iterator{     List<ShapeConfigPair> shapeList = new ArrayList<>();    public ShapeList(PaintCanvas canvas, ShapeConfigPair activeShape)     {        // ...        ShapeDrawer shapeDrawer = new ShapeDrawer(canvas, shapeList);    }}
查看完整描述

3 回答

?
慕无忌1623718

TA贡献1744条经验 获得超4个赞

我认为您没有理解implements Iterator您的类声明中的含义,并且不清楚您的问题究竟是什么。

造成混淆的一个原因是您定义了一个类ShapeList,它有一个名为 的实例变量,shapeList但它的类型是ArrayList。您将 ArrayList 传递给的构造函数,ShapeDrawer但听起来您希望在 ShapeDrawer 中执行的操作是调用包含ArrayList的ShapeList对象的方法。因此,与其传递 ArrayList,不如传递.this


查看完整回答
反对 回复 2021-07-14
?
aluckdog

TA贡献1847条经验 获得超7个赞

ShapeDrawer构造应该是名单


查看完整回答
反对 回复 2021-07-14
?
九州编程

TA贡献1785条经验 获得超4个赞

您的课程应该扩展AbstractList<ShapeConfigPair>. 这很容易,因为没有很多事情要做。然后你可以把它作为一个 List 传递,没有问题。

Iterator 不是设计为保存数据的主类,而是用作临时适配器来遍历集合。


查看完整回答
反对 回复 2021-07-14
  • 3 回答
  • 0 关注
  • 156 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信