- PR -

ArrayListについて

投稿者投稿内容
KOX
大ベテラン
会議室デビュー日: 2004/08/23
投稿数: 142
投稿日時: 2007-07-09 16:41
このプログラムでは、
1行毎に、ArrayListに追加していることになります。
dataの1個目="11 21 31 41 51"
dataの2個目="12 22 32-100 52"
といった感じです。
まずは読み込んだファイルを列分に分割してみましょう。
nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2007-07-09 16:48
1.ArrayListの使い方そのものがよくわからない
2.やりたいことがプログラムでうまく表現できない

という二つの問題があったと思いますが、ArrayListの使い方そのものは
把握されたと思ってよいのですね?

提示したサンプルではそもそもdata.add(aLine);の箇所でしたデータを
add()していないわけですから、そのデータしか入らないことになりますね。

まず、格納するデータのデータ構造から考えましょう。
本来はいわゆる2次元の配列にデータを格納しようとしていたのでしたね。

では、ArrayListでもそのようにしなければなりません。
ArrayListにArrayListをadd()するのです。
ここで、ジェネリクスを使うと何型かがわかりやすいです。
コード:
ArrayList<ArrayList<String>> list = new ArrayList<ArrayList<String>>();



ArrayList<String>はString型を格納することができるArrayListです。
このような宣言にするとget()の際のキャストが不要になります。

コード:
ArrayList<String> stringList = new ArrayList<String>();
stringList.add("test");
String str = stringList.get(0); // キャストがいらない!



そして先のArrayList<ArrayList<String>>はArrayList<String>を格納するArrayListです。
コード:
ArrayList<ArrayList<String>> list = new ArrayList<ArrayList<String>>();
ArrayList<String> stringList = new ArrayList<String>();
list.add(stringList);


どの段階でどういう型なのかを意識しながらコードに落として見てください。

スキルアップ/キャリアアップ(JOB@IT)