içeren sık sık kendimi aşağıdakileri yaparak bulmak: Listede kümesinin "damping" içindekiler gibiHashSet performansını
HashSet<String> set = new HashSet<String>();
//Adding elements to the set
ArrayList<String> list = new ArrayList<String> (set);
şey. Genelde eklediğim öğeler çoğaltmak istediğim iki kopya içerdiğinden ve bunu kaldırmak için kolay bir yol gibi görünüyor. aklında sadece o amaçla
(kaçınarak çiftleri) Ben de yazabilirsiniz:
ArrayList<String> list = new ArrayList<String>();
// Processing here
if (! list.contains(element)) list.add(element);
//More processing here
Ve böylece listeye seti "damping" gerek yok. Ancak, her bir öğeyi eklemeden önce küçük bir kontrol yapıyordum (ki bu da HashSet'in de yaptığı gibi)
İki olasılıktan herhangi biri daha verimli mi?
Sorunun ilk bölümünü yanlış yaptınız. Sette çöplüklerden kurtulmak için sette çöplük yapıyorsunuz, değil mi? – MirMasej
Neden sınmıyorsunuz? Btw, seti niçin bir listeye dönüştürmeyi tercih etmiyor? Setin içinden geçmek büyük olasılıkla büyük diziler için daha hızlı olacaktır. – luk32
Merhaba, yorumlarınız için teşekkür ederiz. Bu senaryoda setimi verilerle dolduruyorum (çiftleri önlemek için) ve sonra bir listeye döküyorum, bu şekilde tek bir liste yok. Listeye ihtiyacım olmasaydı aslında bir tane oluşturmazdım, ancak bazen bir sıralama daha sonra uygular ve çalıştığım kodun bir kısmı listeler gerektirir. – Jorge