- - PR -
Listの値をまとめる
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2004-08-26 21:47
Listの中身が
{"ABC","ABC","ABC","DEF"} → {"ABC","DEF"} 同一の文字列が複数入っていた場合に一つにまとめるようなJavaの標準クラスはありませんか? | ||||
|
投稿日時: 2004-08-26 22:20
java.util.Setがあります。
Setはインターフェースなので、実際にはHashSetとかになります。 | ||||
|
投稿日時: 2004-08-26 22:27
すでにListに入っている値を変更したいのですが、
何か方法はありますでしょうか? ※Listに入っているものをHashSetに詰め直すのは微妙ですし。。。 | ||||
|
投稿日時: 2004-08-26 22:56
ListがAllayListだとして
単純にHashSetを作るのはダメですか。。 ArrayList list = new ArrayList(); list.add("ABC"); list.add("ABC"); list.add("ABC"); list.add("DEF"); System.out.println(list); Set set = new HashSet(list); System.out.println(set); _________________ | ||||
|
投稿日時: 2004-08-27 09:16
確かに出来ますね。
ただオブジェクトを余分に一つ作る必要がありますね。 やはりこの方法が一番シンプルなのでしょうか? 最終的には同一文字列を排除したIteratorを作成したいのですけど。。。 | ||||
|
投稿日時: 2004-08-27 09:41
| ||||
|
投稿日時: 2004-08-27 09:47
この場合新しいSetはけっして「余分な」オブジェクトじゃないと思いますよ。 どうしてもどうしても新しいオブジェクトを作るのがイヤなら、Listの中を舐めて、同じのがあったら削除すればよいと思いますが、時間的にも空間的にもかえって計算量が増えると思います… ArrayListのような、要素の削除がO(1)でできないデータ構造ならなおさらです。 | ||||
|
投稿日時: 2004-08-27 10:34
みなさまアドバイスありがとうございました。
Setを使用する方法にしたいと思います。 | ||||
