Benim düşünceme göre, LazerBanana cevabı tüm diğer cevaplar işaret çünkü kabul üst dereceli yanıt & olmalıdır java.util.TreeSet
(veya listeye ilk dönüştürme sonra çağrı Collections.sort(...)
dönüştürülen listesinde) tür senin hangi nesne olarak OP sormak için rahatsız etmedi HashSet
vardır yani bu elemanların önceden tanımlanmış bir doğal düzeni varsa olmadığı ve bu isteğe bağlı bir soru değil, zorunlu bir sorudur.
Sadece gitmek & senin koyarak başlayamaz HashSet
bir içine unsurları TreeSet
zaten uygulamaması halinde öğe türü Comparable
açıkça geçen değilse arayüzü veya Comparator
hiç TreeSet
yapıcısı.
Gönderen TreeSet
JavaDoc'u,
Öğelerinin doğal sırasına göre sıralanmış yeni, boş bir ağaç kümesi oluşturur. Sete eklenen tüm öğeler, Karşılaştırılabilir arayüzü uygulamalıdır. Ayrıca, tüm bu tür öğeler karşılıklı olarak karşılaştırılabilir olmalıdır: e1.compareTo (e2), kümedeki herhangi bir e1 ve e2 öğesi için bir ClassCastException oluşturmamalıdır. Kullanıcı kümeye bu kısıtlamayı ihlal eden bir öğe eklemeye çalışırsa (örneğin, kullanıcı, öğeleri tam sayı olan bir kümeye bir dize öğesi eklemeye çalışırsa), add çağrısı bir ClassCastException oluşturur.
Bu nedenle, yalnızca karşılaştırıcınızı yerinde tanımladığınız tüm Java8 akış tabanlı yanıtlar yalnızca anlamlıdır, çünkü POJO'da karşılaştırılabilir uygulama isteğe bağlı hale gelir. Programcı, karşılaştırıcıyı gerektiği gibi ve gerektiğinde tanımlar. TreeSet
Bu temel soruyu sormadan toplamaya çalışmak da yanlıştır (Ninja'nın cevabı). Nesne türlerinin yanlış olduğunu String
veya Integer
yanlış olduğunu varsaymak.
Bunu söyledikten sonra, diğer endişeler,
- Sıralama Performansı
- Bellek Ayak Baskısı (orijinal seti korumak ve her sıralama yapıldığında veya seti yerinde sıralamak, vb.)
diğer ilgili noktalar da olmalıdır. Sadece API'ye işaret etmek sadece niyet olmamalı.
Orijinal küme zaten yalnızca benzersiz öğeler içerdiğinden ve bu kısıtlama sıralı küme tarafından da korunduğundan, veriler çoğaltıldığından orijinal kümenin bellekten temizlenmesi gerekir.
HashSet
, sırasız bir koleksiyondur.