Collectors.toSet()
siparişi korumaz. Bunun yerine Listeleri kullanabilirdim, ancak sonuçta elde edilen koleksiyonun eleman çoğaltmasına izin vermediğini belirtmek isterim, bu da tam olarak Set
arabiriminin ne için olduğunu gösteriyor.Sipariş koruyucu bir Set'e toplanan bir Toplayıcı var mı?
cevap
toCollection
'u kullanabilir ve istediğiniz kümenin somut örneğini sağlayabilirsiniz. Örneğin ekleme siparişini tutmak istiyorsanız: Örneğin
Set<MyClass> set = myStream.collect(Collectors.toCollection(LinkedHashSet::new));
:
public class Test {
public static final void main(String[] args) {
List<String> list = Arrays.asList("b", "c", "a");
Set<String> linkedSet =
list.stream().collect(Collectors.toCollection(LinkedHashSet::new));
Set<String> collectorToSet =
list.stream().collect(Collectors.toSet());
System.out.println(linkedSet); //[b, c, a]
System.out.println(collectorToSet); //[a, b, c]
}
}
Güzel, tam olarak ihtiyacım olan şey, ama bence Guava'nın “ImmutableSet” durumu benim durumumda daha iyi olurdu. 'ImmutableSet' toplayan bir koleksiyoncu nasıl yapabilirim hakkında herhangi bir fikir? Örnekleri, bir 'Koleksiyon' olmayan bir 'ImmutableSet.Builder' ile inşa edilmiştir, bu yüzden bu durumda Collectors.toCollection() 'için bir' Tedarikçiyi 'nasıl yapacağınızı anlayamıyorum. – gvlasov
@Susei Bakmaya çalışacağım. Bir alternatif, değiştirilemeyen bir setin iade edilmesi olacaktır. Örn: 'Set
@Susei En yakın buldum: 'Set
- 1. iPhone OS 3.0 gerçek bir çöp toplayıcı var mı?
- 2. Var bir printf içinde bildirmek GCC tarafından toplanan çöp olamaz
- 3. HTTP etiketi özelliklerinin listelenmesi gereken belirli bir sipariş var mı?
- 4. Windows UWP Ekran Koruyucu olarak mı?
- 5. açılışta özel bir ekran koruyucu başlayarak elle Ben web sunucusu koşuyorum hangi bir dokunmatik kiosk var ekran koruyucu
- 6. Python'un değişmez bir listesi var mı?
- 7. BufferedImage.getGraphics(), bir düzeltme var mı?
- 8. ggplot ile toplanan veriler
- 9. Linux'ta ekran koruyucuları engellemek için iyi bir yol var mı?
- 10. GCC'ye sadece yükleme/depolama değil, herhangi bir talimatı yeniden sipariş etmemesini söylemenin bir yolu var mı?
- 11. - Bir fark var mı?
- 12. Yıllık verilere toplanan zaman serileri
- 13. Herhangi bir iyi C#, .net haber toplayıcıları var mı?
- 14. Öğe çerçevesindeki değişmez varlıklarla eşlenmenin bir yolu var mı?
- 15. Windows 8'de Ekran koruyucu önizlemesi hakkında ne fark var?
- 16. MongoDB toplayıcı seçmeli projesi
- 17. arduino + gprs/gsm ekran koruyucu
- 18. Linux ekran koruyucu nasıl geliştirilir
- 19. Sonsuz yatay jQuery toplayıcı
- 20. Tekerlek toplayıcı nasıl yapılır
- 21. Bir iPod SDK var mı?
- 22. bir SQL satırı var mı?
- 23. Dışarıda bir ParameterExpression var mı?
- 24. Delphi'de bir HashSet var mı?
- 25. Bir utf8_unicode_cs harmanlaması var mı?
- 26. SoftLayer API: Sipariş kimliğine sahip olduğumda billingItem değerini döndürmek için herhangi bir SoftLayer API'si var mı?
- 27. Toplanan jQuery FullCalendar olay verilerine nasıl erişilir?
- 28. Bir parametre ile sipariş ver
- 29. Sipariş
- 30. Android için uygun herhangi bir fizik motoru var mı?
Ben böyle bir şeyin varlığına düşünmüyorum. Benim de ihtiyacım olduğunu biliyorum ve kendim yazmalıydım. – markspace
'SortedSet' çalışır mı? Değilse, özel gitmek için yoldur. – AntonH
@AntonH Hayır, O (1) işlemlerini O (log n) ye tercih ederim. – gvlasov