- - PR -
iterator ,BufferedReaderについて
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-03-26 09:37
BufferedReader,Iteratorなどの使用方法について教えていただきたいのですが、
以下の1,2のように全データを検索した後にポインタカーソルのようなものを先頭に戻す方法ってあるんでしょうか?(ResultSet.first()のようなメソッド) どなたかテクニックを伝授してください。 よろしくお願いいたします。 1=============================================================== iterator = HashMap().keySet().iterator(); while(iterator .hasNext()){ } 2=============================================================== while ((str_line = BufferedReader.readLine()) != null){} =============================================================== | ||||||||
|
投稿日時: 2005-03-26 09:51
オブジェクト指向の世界では、メソッドがなければ基本的にそのような操作はできないものと考えてイイです。
どのクラスに目的の役割を持つメソッドがあるか見極めるのはまた難しいところですが。 たとえば Iterator は hasNext(), next(), remove() しかないのでそれ以外の操作はできません。 List を直接操作するか、もう一度 Collection#iterator() でカーソルを取得しましょう。 Reader は役割としてはストリームを順に読み取っていくことになります。 ストリームとはイメージ的には双方向のものではなく一方的に流れてくるデータのことです。読み取ったあとから先頭のデータを要求するようなことはできませんので、そのようなメソッドがそもそもないのです。 [ メッセージ編集済み 編集者: インギ 編集日時 2005-03-26 09:51 ] | ||||||||
|
投稿日時: 2005-03-26 13:59
Reader#reset() は?
まあ、基本はそうなんだけど。双方向ではないけど読み取ったデータをプッシュバックできるものもある。PushbackReader とか、C で ungetc なんかを使っていた人には重宝するはず。 | ||||||||
|
投稿日時: 2005-03-26 21:06
ListIteratorでもどれます。
List#listIterator(); | ||||||||
|
投稿日時: 2005-03-27 20:47
ありがとうございます。
皆さんのお返事で書かれていたメソッドを調べてみつつなにか良い方法 を探してみます。 |
1