- - PR -
配列から任意の項目を削除する方法について
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-03-12 17:38
自作JavaBeansクラスの配列から任意の位置のObjectを
削除しようと思い、以下のようなコーディングをしました。 TestBean[] tbs = 〜〜〜; List rtnList = Arrays.asList(tbs); for(int i=0; i<tbs.length; i++){ if(ある条件){ rtnList.remove(i); } } tbs = (TestBean[])rtnList.toArray(); 実際に実行すると、removeするところで 以下のようなExceptionが発生してしまいます。 java.lang.UnsupportedOperationException at java.util.AbstractList.remove(AbstractList.java:167) まったく別のアプローチでもかまわないのですが、 配列から簡単に任意の項目を削除する方法は無いでしょうか? | ||||
|
投稿日時: 2004-03-12 17:56
>まったく別のアプローチでもかまわないのですが、
>配列から簡単に任意の項目を削除する方法は無いでしょうか? コピーを作り必要な値をコピー 、削除フラグを設けるとか | ||||
|
投稿日時: 2004-03-12 18:03
ア太郎さんこんにちは。
Arrays#asList()で返されるListオブジェクトはremove()に対応していない為 UnsupportedOperationExceptionが発生していると思われます。 List rtnList = new ArrayList(); rtnList.addAll(Arrays.asList(tbs)); のようにしてはどうでしょうか。 | ||||
|
投稿日時: 2004-03-12 18:04
Arrays.asList の返す List が remove メソッドを実装していないからです。
(remove は任意のオペレーション) この List を remove を実装している ArrayList か LinkedList でラップすれば OK だと思います。 # このエラーについては ところで、前の質問で「基本的には今までも投稿したところには結果報告も行うように しています。 」というのはどうなりました? http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=9066&forum=12 | ||||
|
投稿日時: 2004-03-12 18:12
ArrayList(Collection c) のコンストラクタがありますよ。 #読みにくい個所を訂正しました。 [ メッセージ編集済み 編集者: でゅうく 編集日時 2004-03-12 18:13 ] | ||||
|
投稿日時: 2004-03-12 18:52
ご質問の件は解決されたと思うのですが、下記引用部分は上手くいきましたか?
| ||||
|
投稿日時: 2004-03-13 12:32
みなさん、レスありがとうございます。
皆さんの意見を参考に、以下のような形で解決しました。 改良の余地はまだまだありそうですが、、、 TestBean[] tbs = 〜〜〜; List rtnList = new ArrayList(Arrays.asList(tbs)); int zure = 0; for(int i=0; i<tbs.length; i++){ if(ある条件){ rtnList.remove(i-zure); ++zure; //消すごとにズレが生じるので } } TestBean[] tbs2 = new TestBean[rtnList.size()]; tbs = (TestBean[])rtnList.toArray(tbs2); 顔爺さん> 前回の質問の結果報告も既に行ってあると思いますが。 | ||||
|
投稿日時: 2004-03-13 13:32
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=9066&forum=12
>ローカルの設定はセキュリティーやパッチだと思われますが、 >よくわかりません。 >何かわかったらご連絡したいと思います。 よく分からないローカル設定とやらはもう放置中? といいますか、結局うまくいったんですか? それすら判断できませんが。 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=9869&forum=12&3 >Session無効化のタイミングで、 >HttpSessionBindingEventも発生するとは知りませんでした。 >試してみます。 試した結果は? こちらも結局解決したのか判断できないのですが。 >>Application スコープにユーザ情報ってあまり聞かないのですが >>よろしければどういう用途か教えていただけませんか? どういう用途なのかそんなことを説明するつもりはない? もしかして、アドバイスを受けて、 「分かりましたやってみます」 が結果報告だと思っているのでしょうか・・・? 私の認識ではその「やってみた」結果を報告することが結果報告なのですが^^; 進展しないのならしないで、「結局うまくいきませんでした」になるでしょうし。 |