ArrayList`があるのですが、そこから繰り返される文字列を削除したいのです。どのようにすればよいでしょうか?
もしCollectionの中に重複を入れたくないのであれば、なぜ重複を許すCollectionを使っているのかを考えるべきです。繰り返される要素を削除する最も簡単な方法は、その内容を Set (重複を許さない) に追加してから、Set を ArrayList に戻すことです。
Collection
Set
ArrayList
Set set = new HashSet(yourList); yourList.clear(); yourList.addAll(set);
もちろん、これはArrayList内の要素の順序を破壊します。
ArrayList "を "HashSet "に変換することで、重複したデータを効果的に削除することができますが、挿入順序を保持する必要がある場合には、次のようなバリエーションを使用することをお勧めします。
// list is some List of Strings Set s = new LinkedHashSet(list);
その後、Listの参照を戻す必要がある場合は、変換コンストラクタを再度使用することができます。
List
重複したくない場合は、Listではなく、Setを使用してください。ListをSet`に変換するには、次のようなコードを使います。
を
// list is some List of Strings Set s = new HashSet(list);
本当に必要であれば、同じ構造を使ってSetをListに戻すことができます。
もし
Collection
の中に重複を入れたくないのであれば、なぜ重複を許すCollection
を使っているのかを考えるべきです。繰り返される要素を削除する最も簡単な方法は、その内容をSet
(重複を許さない) に追加してから、Set
をArrayList
に戻すことです。もちろん、これは
ArrayList
内の要素の順序を破壊します。ArrayList "を "HashSet "に変換することで、重複したデータを効果的に削除することができますが、挿入順序を保持する必要がある場合には、次のようなバリエーションを使用することをお勧めします。
その後、
List
の参照を戻す必要がある場合は、変換コンストラクタを再度使用することができます。重複したくない場合は、
List
ではなく、Setを使用してください。Listを
Set`に変換するには、次のようなコードを使います。本当に必要であれば、同じ構造を使って
Set
をList
に戻すことができます。