- - PR -
ArrayList removeRangeの使い方
1|2|3
次のページへ»
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2003-06-04 17:07
みーちくと申します。
初歩的な質問なんですが、ご教授願います。 ArrayListに格納されているリスト中にあるキーワードが書かれている行が あります。その行と次の改行を全て削除したいと考えてます。 そこで、indexOf(キーワード)でそのインデックス番号を取得して、 removeRangeを使用して削除したいと考えたのですが、 うまく動作できませんでした。 removeRangeの使い方を教えて頂けませんでしょうか。 宜しくお願い致します。 [エラーメッセージ] removeRange(int,int) は java.util.ArrayList で protected アクセスされます。 [ArrayList] a b aaa :: aaa /aaa/b/c ←削除 aaa : /b/c/d ←削除 gaaa /d ←削除 g123 /aaa/aa/a ←削除 ←削除 bbb :: bbb /bbb/d/f bbb : /a/b/c gbbb /f g132 /bbb/bb/b c d | ||||
|
投稿日時: 2003-06-04 17:37
これは、コンパイルエラーですよね。
protectedなので、使い方というより、 はじめから使えないのではないでしょうか。 | ||||
|
投稿日時: 2003-06-04 17:57
みーちくです。
amnakyさん。返信ありがとうございました。 protectedのものは使えなかったのですね。 大変失礼致しました。 | ||||
|
投稿日時: 2003-06-04 22:43
いやいや、protectedだから使えるでわけでしょう。
ただ、publicとちがって他のクラスのオブジェクトから直接操作できない だけです。 扱いたいデータの集まりを ArrayListクラスのサブクラスとしてください。 面倒な気がするかも知れませんが、そのほうが良い設計になることが多いです。 あと、複数のスレッドから利用される場合は、同期を考慮することも忘れては なりせんので、念の為。 | ||||
|
投稿日時: 2003-06-05 01:06
removeRangeはprotectedメソッドなので直接呼び出すことはできませんが、
以下のように一旦サブリストを取得すれば間接的に呼び出すことができます。
詳しくはremoveRangeとsubListメソッドのAPI仕様を参照してください。 | ||||
|
投稿日時: 2003-06-05 02:11
おお〜。
クリアするときにサブリストを使うとこまで頭が回りませんでした. | ||||
|
投稿日時: 2003-06-05 10:27
おおお、こんなことできるんですねえ。
確かにremoveRangeを直接呼べるようにするよりも こっちのほうがすっきりしますね。 勉強になりました。 | ||||
|
投稿日時: 2003-06-05 10:55
みーちくです。
amnaky様、Kissinger様、yamasa様 いろいろありがとうございました。 Kissingerさん >扱いたいデータの集まりを ArrayListクラスのサブクラスとしてください。 >面倒な気がするかも知れませんが、そのほうが良い設計になることが多いです。 私自身、今までサブクラスを呼び出すという事をやったことがありません。 Kissingerさんのおっしゃる事がちょっと???という感じです。 すみません。勉強いたします。 yamasaさん ListとArrayListを使う場合、違いなどがあるのでしょうか? 私は、なぜかず〜とArrayListのみ使用してプログラムを作っておりました。 宜しくお願い致します。 | ||||
1|2|3
次のページへ»
