bigTable
タイプのメンバーがいるクラスStudentがありArrayList<ArrayList<Integer>>
ます。それを行列として想像すると、イテレータの初期化でパラメータとして指定された特定の列を反復できるようにしたいと思います。getValue
また、イテレータには2つのメソッドが必要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インターフェイスを実装できます)を返すと、余分なメモリを占有します(つまり、コピーされるのか、参照が渡されるだけなのか)。