問題J02501の解答例と解説 Java Lv.3

テキストファイルからArrayList<Integer>を作る(30分)


<解答例 1>
F11キーでフルスクリーンモード、Escキーで元に戻ります。

テキストファイルを開いてロードするとき、たいていの人は、BufferedReader を使うと思うから、Integer.parseInt というメソッドを使えば良いことに気が付いた人は、これと似たコードになるんじゃないかな。これで目標時間の1.2秒は余裕をもってクリアできるはずだよ。だいたい0.7秒~1.0秒くらいかな。



<解答例 2> 不正解
F11キーでフルスクリーンモード、Escキーで元に戻ります。

こちらはBufferedReaderを使わずに、FileReaderを使う方法だよ。BufferedReader は1行ずつ読むプログラムを書いても、実際は1度に 8192文字ずつ先読みして読み込んで蓄えておくから、HDDにアクセスする回数が少なくて済むし、文字列を変換処理する必要がある場合でも効率が良いんだ。対して、FileReader を使う場合は、1文字ずつ読み取るから、ファイルにアクセスする回数が多くなるし、変換処理があったら、1文字ずつ行なうからとても効率が悪いんだ。ファイル E は100万行もある長いファイルだから、この解答例のプログラムだと1秒では終わらずに、合格できないよ。だいたい1.7秒~2.0秒くらいかな。





初めての方へ:このページは、このサイトで用意しているプログラミング問題の解答と解説のページです。このサイトではブラウザ上からプログラミングができます。会員登録(無料)して、プログラミングしてみませんか?
新規登録



ログイン
メールアドレス:

パスワード:



パスワード紛失

新規登録