- PR -

Listの値をまとめる

投稿者投稿内容
JJ
会議室デビュー日: 2004/05/28
投稿数: 10
投稿日時: 2004-08-26 21:47
Listの中身が
{"ABC","ABC","ABC","DEF"} → {"ABC","DEF"}
同一の文字列が複数入っていた場合に一つにまとめるようなJavaの標準クラスはありませんか?
けむ
常連さん
会議室デビュー日: 2003/09/26
投稿数: 40
投稿日時: 2004-08-26 22:20
java.util.Setがあります。
Setはインターフェースなので、実際にはHashSetとかになります。
JJ
会議室デビュー日: 2004/05/28
投稿数: 10
投稿日時: 2004-08-26 22:27
すでにListに入っている値を変更したいのですが、
何か方法はありますでしょうか?

※Listに入っているものをHashSetに詰め直すのは微妙ですし。。。

Tak
会議室デビュー日: 2004/08/26
投稿数: 7
お住まい・勤務地: 東京
投稿日時: 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);

_________________
JJ
会議室デビュー日: 2004/05/28
投稿数: 10
投稿日時: 2004-08-27 09:16
確かに出来ますね。

ただオブジェクトを余分に一つ作る必要がありますね。
やはりこの方法が一番シンプルなのでしょうか?

最終的には同一文字列を排除したIteratorを作成したいのですけど。。。
佐々木
大ベテラン
会議室デビュー日: 2003/03/30
投稿数: 121
投稿日時: 2004-08-27 09:41
引用:

JJさんの書き込み (2004-08-27 09:16) より:
確かに出来ますね。

ただオブジェクトを余分に一つ作る必要がありますね。
やはりこの方法が一番シンプルなのでしょうか?

最終的には同一文字列を排除したIteratorを作成したいのですけど。。。


佐々木
大ベテラン
会議室デビュー日: 2003/03/30
投稿数: 121
投稿日時: 2004-08-27 09:47
引用:

JJさんの書き込み (2004-08-27 09:16) より:
確かに出来ますね。

ただオブジェクトを余分に一つ作る必要がありますね。
やはりこの方法が一番シンプルなのでしょうか?

最終的には同一文字列を排除したIteratorを作成したいのですけど。。。



この場合新しいSetはけっして「余分な」オブジェクトじゃないと思いますよ。

どうしてもどうしても新しいオブジェクトを作るのがイヤなら、Listの中を舐めて、同じのがあったら削除すればよいと思いますが、時間的にも空間的にもかえって計算量が増えると思います… ArrayListのような、要素の削除がO(1)でできないデータ構造ならなおさらです。
JJ
会議室デビュー日: 2004/05/28
投稿数: 10
投稿日時: 2004-08-27 10:34
みなさまアドバイスありがとうございました。
Setを使用する方法にしたいと思います。

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