- - PR -
Listでの同一文字列の削除
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2009-02-22 03:55
ArrayListの中身が
{"ABC","DEF","ABC","GHI"} → {"ABC","DEF","GHI"} 同一の文字列が複数入っていた場合に、中身の順番を入れ替えないで一つにまとめるようにするJavaの標準クラスはありませんか? HushSetですと、中身は一つにまとまりますが、順番がめちゃくちゃになってしまいます。 |
|
投稿日時: 2009-02-22 04:26
やはりHashSetを使いますよ。
アルゴリズム: 空の HashSet<String> s を用意 入力のArrayList<String>をiterateして、 要素がsの中に存在しない場合、その要素をsに足す 存在する場合、この要素をArrayList<String>から削除 これで、計算量 O(N) でできますね。 |
|
投稿日時: 2009-02-22 04:47
スフレ様
回答ありがとうございます。 申し訳ありません、プログラミング初心者で、 入力のArrayList<String>をiterateして、 要素がsの中に存在しない場合、その要素をsに足すという部分の 実行の仕方がいまいち理解できないのですが、どのように行えばいいのでしょうか? |
|
投稿日時: 2009-02-22 11:16
追加順序を保障するユニークなコレクションは、
java.util.LinkedHashSetです。 |
|
投稿日時: 2009-02-22 14:49
ようするに
ArrayListの頭から要素を取得していって 別の入れ物に格納。 別の入れ物の中に今から格納しようとする要素が既に存在していた場合 ArrayListの中にも既に存在している ということだからその要素は削除する てことです。 |
1