我有一个学生类,它有一个bigTable
类型的成员ArrayList<ArrayList<Integer>>
。如果我们把它想象成一个矩阵,我希望能够迭代一个特定的列,在一些迭代器初始化中作为参数给出。另外,我希望迭代器有 2 个方法,getValue
并且getPosition
. 即类似的东西:
1 2 3
9 8 6
3 4 5
Student student = newStudent()
SomeType(what??) it = student.iterator(1);
it.getValue() // returns 2
it.getPosition() // returns 0
it.next() // moves to next position
it.getValue() // returns 8
it.getPosition() // returns 1
...
这个界面只是一个建议。我正在考虑通过内部类在 Student 中实现迭代器模式。但是返回对内部类的引用是否合适?事实上,如果我想将迭代器作为参数传递给某人,我应该说它是什么类型?(内部类不可见)...
有没有更优雅的方式来完成这项任务?
另外,只是想知道,如果我返回整行(一个 ArrayList,在这种情况下 Student 可以实现 Iterator 接口)会占用额外的内存(我的意思是它会被复制还是只是传递一个引用?)