• ベストアンサー

外部ファイルから読み込んだデータを配列変換したい!

osumitanの回答

  • osumitan
  • ベストアンサー率33% (102/307)
回答No.7

No.3の補足です。 java.util.ArrayListは、可変長配列を扱えるクラスです。 普通の配列のように、宣言時に要素数を決めるのではなく 処理しながら要素を追加していくような使い方をします。 使い方の詳細はAPIドキュメントを参照いただくとして 簡単に書くと、こんな使い方ができます。 addで追加、getで取得、iteratorで反復子を取り出します。 ----------------- import java.util.ArrayList; import java.util.Iterator; public class Test {   public static void main(String args[]) {     // コマンドライン引数をArrayListに移し替え     ArrayList list = new ArrayList();     for(int i = 0 ; i < args.length ; i++) {       list.add(args[i]);     }     // ArrayListの要素数を表示     System.out.println("要素数=" + list.size());     // ArrayListの内容を順次表示(get)     System.out.println("getで内容表示");     for(int i = 0 ; i < list.size() ; i++) {       System.out.println((String)list.get(i));     }     // ArrayListの内容を順次表示(Iterator)     System.out.println("Iteratorで内容表示");     Iterator it = list.iterator();     while(it.hasNext() == true) {       System.out.println((String)it.next());     }   } } ----------------- $ java Test あいう abc 123 要素数=3 getで内容表示 あいう abc 123 Iteratorで内容表示 あいう abc 123 ----------------- データも今の形式より、もし変えられるようであれば 以下のような形式の方が扱いやすいでしょう(CSVです)。 ----------------- No,Japanese,Math,English 1,72,88,13 2,99,48,77 3,40,32,96 : : -----------------

lutea
質問者

お礼

ArrayListをわかりやすくご教授くださりどうもありがとうございました! たいへん勉強になりました。参考にして頑張ってみます!

関連するQ&A

  • 読み込んだデータを配列へ代入する方法

    ---ここから--- 1,2 3,4 ---ここまで--- このようなファイルを読み込んでデータを配列へ格納するには, $pathname="D://data.txt"; open MYFILE, "$pathname"; @list=<MYFILE>; for($i=0;$i<2;$i++){ @dat=split(/,/,$list[$i]); print @dat; } close MYFILE; といったようなforあるいはwhileで1つの配列(上の場合だと@dat)に1行のデータを繰り返し入れていく方法しか思い浮かびません。できれば1行目のデータは@dat1という配列へ,2行目のデータは@dat2という配列へ,といったように行ごとに別々の配列へ代入させたいのですが良い方法はないでしょうか。 もしくは@dat=([1,2],[3,4])のような2次配列の形にでもできれば最高なのですが、、、

    • ベストアンサー
    • Perl
  • 固定長ファイルを配列に!

    5行まで違うデータが入っていて 6行目から 347.44 14832 616 4.15 といったようなデータになっています。 この数値だけを配列に入れようと思うんですが どうすればよいでしょうか? ちなみに・・・ 1行ずつ文字列として配列に入れて 6行目に当たる配列から substrを使ってそれぞれ分けようと思ったのですが 小数点がない真ん中の二つのデータが うまくとれないんです。 わかる方よろしくお願いします。

    • ベストアンサー
    • PHP
  • 連想配列(ハッシュ)のファイルへの書き込み方

    連想配列(ハッシュ)のファイルへの書き込み方と、 そのファイルからの読み込み方で困っています。 たとえば以下のような連想配列(ハッシュ)があって %colorFile = ( 'red'=>'5', 'green'=>'10', 'blue'=>'3' ); この情報をサーバーの color.dat ファイルに書き込んで保存し、 変更があったときにファイルからデータを読み込むには どのようにしたらいいのでしょうか? 連想配列(ハッシュ)のまま保存すると color.datの中身が green10blue3red5 のようになってしまい、 読み込んだときに連想配列(ハッシュ)に復元できません…。 よろしくお願いします。

    • ベストアンサー
    • Perl
  • ファイルからデータを読み込んで、配列に格納する方法

    データファイル grep.dat があり、その中は 12345 67890 ABCDE (EOF) となっています。   このファイルの中身を読み込んで、配列 P[0]の 中に("12345","67890","ABCDE") に格納したい のですが、どのように記述すればよいでしょうか。

    • ベストアンサー
    • Perl
  • 配列の並び替え

    下のように5つの配列がA~E列まであって、2、3行目にデータが入っています。このときに、2行目の値が3行目の値より小さい配列で、かつ、2行目の値が小さい順に並べる。その後に、3行目より、2行目の値の方が大きい配列を3行目の値が大きい順に並べるマクロコードを教えてください。   A B C D E←列      1  1 2 3 4 5←配列番号 2  4 9 8 6 2 3  1 5 7 10 3      ↑ 行    ↓     A B C D E 1  5 4 3 2 1 2  2 6 8 9 4 3  3 10 7 5 1

  • ファイルの中の配列データの変更

    以下の内容のファイル A.datがあります。 "34"-"情報処理" "87"-"会計" "99"-"社会学" [EOF] いま、"87"と"医学"という値がPerlの引数で与えられたとして "87"-"会計" → "87"-"医学" というふうに置き換えたいのです。 "87"と一致する行を配列に読み込むことはできました。 "87"-"会計"の"会計"も読み出せます。"87"-"医学"にも置換でき ます。しかし、それを元のファイルA.datにそこの部分だけを 変更して書き戻すことができません。 どのようにしたらよいのでしょうか。

  • 配列を変更しファイルに書き込むとなぜか古い配列も・・・

    WEB上のCGIで、 ファイル(file.dat)から配列@lineを読み込み、 @line=(01,02,03) となっているときに、配列を操作して @newline=(01,03) とし、この @newline を open(OUT,">file.dat"); print OUT @newline; close(OUT); と処理したところ、なぜか、その中身は 01 03 01 02 03 となってしまいます。つまり、新しいデータ以外に古いデータも書き込まれるのです。 いろいろ試しました。書き込みの前後で@newlineの中身を画面に表示するなどして 確かめましたが、そこには異常はありません。 また、いろいろ変えていくと、場合によっては、ファイルの中身は 01 03 00001 01 02 03 などという訳の分からないことになってしまいます。 追加書き込みの可能性はありません。 試しに @newline の中身を空にして書き込みしてみると、 この場合は ファイルの中身も空になっています。 つまり、 @newlineの中身が有るときは、 画面上には正しく表示されるのに、ファイルに書き込まれるときには、 古いデータ(場合によっては変なデータも)も一緒に出力されていると言うことです。 こういう現象の原因として何が考えられますでしょうか? 今まで、数々のファイル操作をしてきましたが、こういったことは 初めてです。 どうかご教授下さい。

  • ファイルから文字列を読み込んで、検索するプログラム

    以下のようなプログラムをつくりたいのですが、 どうしたらよいでしょうか?? 文字列を配列型に入れるときにわからなくなって しまうのですが。。。 ファイルからデータを順番に読み込み,メモリ上に一次元配列構造に並べて線形探索するプログラムを作成せよ. データの仕様 一行に、 「番号(スペース)読み仮名(スペース)文字列(住所)」 があり、これが10~1000行ほど、ファイルに(.dat) 入っている。 ファイルを配列に読み込んだあと、 番号を入力すると、住所が検索されてでてくる。 問題文も微妙なのですが、 これは番号の配列と住所の配列は別にして、 検索したほうがいいですよね、、? 何かヒントになることだけでも良いので、 よろしくお願いします!

  • 1次元配列「成績」の中に、学生5人分の得点が格納さ

    1次元配列「成績」の中に、学生5人分の得点が格納されている。 配列内のデータを得点の高い順に並び替える流れ図を作成しなさい。 配列:成績 配列:成績 69 56 97 66 71 →97 71 69 66 56 これの求め方を教えて下さい。

  • 表示中の表をデータファイルに格納する

    5列×10行の表を表示させました。 その表の1行をレコードとして、5列×10行(つまり10 レコード分)のデータを @hyouji という配列に格納したい のですが、どのような方法があるでしょうか。 @hyouji の配列内では、要素の長さによるずれはあるものの 表通りの順になります。