お世話になっています。
今うまくいかずに困っていることがありまして、
ご存知の方がいらっしゃいましたら、
ご回答いただけないでしょうか?
質問の内容は以下の通りです。
ArrayListにセットされているデータを
Bean配列にセットするにはどのようにしたら
よいのでしょうか?
自分では以下のようにしているのですが、
デバッグすると落ちてしまいます。
// Bean配列の生成
Bean[] bean = new Bean[arrayListList.size()];
// Iteratorにより要素を取得する
Iterator it = dataList.iterator();
// ヘッダー情報Bean配列の行番号
int i = 0;
// ArrayListのi行目のデータをBeanにキャストし、
// i行目のBean配列にセットする
while(it.hasNext()){
bean[i] = (Bean) dataList.get(i);
i++;
}
ちなみに、キャストしようとしているBeanには
int型の項目があるんですが、そういうのが原因で
落ちるのでしょうか?
ご存知の方がいらっしゃいましたら、ご教授ください。
No.1ベストアンサー
- 回答日時:
こんにちは。
「落ちます」の表現は、他人にはわかりません。
例外が発生しているのであれば、その例外を特定して、情報として掲載してください。
Bean[] bean = new Bean[arrayListList.size()];
と、配列生成時は、arrayListListを利用し、そのあとは、dataListを利用しているのが、すごく気になります。これが原因ではないでしょうか?
それとも、dataListの要素として設定されている値が、Beanクラスオブジェクトではないのが原因だったりしませんでしょうか?
いずれにしても、どう「落ちている」のか、精確に書いていただかないと、、、です。
これは、直接的な話ではありませんが、コーディングに無駄を感じます。
while文でループする度に1増加する変数iを利用しているのならば、Iteratorを使わずに、
for (int i=0; i < dataList.size(); i++) {
bean[i] = (Bean) dataList.get(i);
}
とした方が、コーディング量が減ります。
また、Listから配列へはtoArrayメソッドを使うともっとコーディング量が減ります。
Bean[] bean = new Bean[dataList.size()];
dataList.toArray(bean);
と言った感じでどうでしょう。
この回答への補足
早速のご回答ありがとうございます。
>「落ちます」の表現は、他人にはわかりません。
>例外が発生しているのであれば、その例外を特定し
>て、情報として掲載してください。
すみません。確かにおっしゃる通りですね。今後、
気をつけます。
>Bean[] bean = new Bean[arrayListList.size()];
>と、配列生成時は、arrayListListを利用し、そのあと>は、dataListを利用しているのが、すごく気になりま
>す。これが原因ではないでしょうか?
度々すみません。誤植です。arrayListListと
dataListは同じものとみなしてください。
>いずれにしても、どう「落ちている」のか、精確に
>書いていただかないと、、、です。
そうですね。失礼しました。実際のところは、
デバッグ中にExceptionが発生してしまいます。
どのExceptionかは忘れてしまい、しかも今は
確認できませんので、情報として掲載できません。
ごめんなさい。
>それとも、dataListの要素として設定されている値
>が、Beanクラスオブジェクトではないのが原因だった
>りしませんでしょうか?
う~ん、どういうことですか?知識が全然足りない
もので、おっしゃっていることが理解できないのです
けれど、dataListにセットしている値を、Beanに
セットするときに、Beanの項目にint型やdouble型の
ものがあるとダメということですか?よろしかったら
ご教授いただけませんでしょうか?
ソースについてもいろいろと適切なアドバイスを
頂まして、ホントにありがとうございます。
No.2
- 回答日時:
こんにちは。
while(it.hasNext()){
bean[i] = (Bean) dataList.get(i);
i++;
}
ここのwhile文ですが、無限ループになってしまっていますよ。
Iteratorを使うのでしたら、ちゃんとnext()メソッドで要素を取得しないと、hasNext()はいつまでたってもtrueを返します。
出た例外もIndexOutOfBoundsExceptionだったはずです。
Iteratorを使うのでしたら、こう↓
while (it.hasNext()) {
bean[i] = (Bean)it.next();
}
使わないのであれば、#1さんの言うとおり、
for (int i=0; i < dataList.size(); i++) {
bean[i] = (Bean) dataList.get(i);
}
こうすべきです。
ご回答ありがとうございます。
言われてみれば、確かに無限ループになりますね。
全くもって気づきませんでした。
いろいろとご指導いただきありがとうございました。
これで解決できそうです。ホントに心から感謝
いたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- PHP 配列の値の更新方法について 1 2022/08/05 09:49
- C言語・C++・C# c言語の問題です 課題1 (二分探索木とセット) 大きさ size の配列 array を考える。す 2 2023/01/10 21:08
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# C言語初心者 ポインタについて、お助けください、、 2 2023/03/15 23:50
- C言語・C++・C# C言語の課題が出たのですが自力でやっても分かりませんでした。 要素数がnであるint型の配列v2の並 3 2022/11/19 17:41
- C言語・C++・C# このプログラミングの問題を教えてほしいです。 キーボードからデータ数nとn個のデータを入力し、平均値 3 2022/12/19 22:51
- Visual Basic(VBA) VBAで大量データの処理 3 2022/11/15 21:53
- C言語・C++・C# このプログラミングの問題を教えて欲しいです。 キーボードから整数kを入力し、kが配列aの中に何個存在 2 2022/12/19 22:50
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
このQ&Aを見た人はこんなQ&Aも見ています
-
とっておきの「夜食」教えて下さい
真夜中に小腹がすいたときにこっそり作るメニュー、こっそり家を抜け出して食べに行くお店… 人には言えない、けど自慢したい、そんなあなたの「とっておきの夜食」を教えて下さい。
-
これ何て呼びますか
あなたのお住いの地域で、これ、何て呼びますか?
-
忘れられない激○○料理
これまでに食べたもののなかで、もっとも「激○○」だった料理を教えて下さい。 激辛、でも激甘でも。 激ウマ、でも激マズでも。
-
おすすめのモーニング・朝食メニューを教えて!
コメダ珈琲店のモーニング ロイヤルホストのモーニング 牛丼チェーン店の朝食などなど、おいしいモーニング・朝食メニューがたくさんありますよね。
-
タイムマシーンがあったら、過去と未来どちらに行く?
20XX年、ついにタイムマシーンが開発されました。 あなたは過去に行く? それとも未来? タイムマシーンにのって、どこに行って、何をしたいか教えてください!
-
JavaBeansの配列の値取得方法について
Java
-
JSPでのArrayListの表示について困っています
Java
-
ウィンドウのサイズを変えても表示を崩れないようにしたい
HTML・CSS
-
-
4
HTML tableのセルにtextareaを使って外の枠に重ねて表示する方法
HTML・CSS
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
JavaBeansの配列の値取得方法に...
-
[Ljava.lang.Stringってなんですか
-
javaで大容量テキストファイル...
-
javaでの文字列からの数字抽出
-
java StringとString[]の違い
-
Javaで文字と数字が混ざったも...
-
無名配列の作成方法について質問
-
この警告はどうすれば?
-
配列で、値の入っている要素数...
-
Javaで文字を漢字であるか否か...
-
C#で動的配列Listの中身をListB...
-
C言語でunsigned char配列を連...
-
セッションを使ったint型の値の...
-
ランダムでのboolean値の与え方
-
String型をbyte型へ
-
配列について
-
Struts:可変個数のテキストボ...
-
ArrayListからBean配列に値をセ...
-
同じ文字を探しカウントしたい
-
C言語のポインターに関する警告
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Javaで文字と数字が混ざったも...
-
[Ljava.lang.Stringってなんですか
-
main(String[] args) の args...
-
この警告はどうすれば?
-
【C#】ハッシュテーブル(連想...
-
javamailで複数人にメールを送...
-
jspでの二次元配列
-
配列をセッションに割り当てた後で
-
同じ配列またはクラスを、2回...
-
java
-
Javaで文字を漢字であるか否か...
-
csvファイルを2次元配列に格納
-
配列の中に複数存在する数がい...
-
配列で、値の入っている要素数...
-
JavaのBase64デコードで正しく...
-
C言語でunsigned char配列を連...
-
C#で動的配列Listの中身をListB...
-
【Ajax通信&Java】配列の受け取...
-
javaについて
-
javaでEUC-JP文字列→UTF-8への変換
おすすめ情報