java: Map <String, Set <String>> [duplicate] içindeki tüm farklı anahtarların ve değerlerin sayısını al
Jan 26 2021
input: Map <String, Set> harita
örneğin: map =
{"a"=[],
"b"=["b", "1", "2", "4"]}
beklenen çıktı: 5 ("b" anahtar ve değer olarak görünür. bir olarak sayılmalıdır)
bu şimdiye kadar denediğim şey. bunu yapmanın daha iyi bir yolu var mı?
Set<String> o = new HashSet<String>();
o.addAll(m1.keySet());
o.addAll(m1.values().stream().flatMap(Collection::stream).collect(Collectors.toSet()));
System.out.println(o.size());
Bu çıktıya ulaşmak için haritanın giriş setinde akış yapmak mümkün mü? Ayrıca ayrı bir hashset oluşturmak sadece bir sayı almak için gereksiz görünüyor
Yanıtlar
1 Eran Jan 26 2021 at 15:20
Bunun gibi bir şey yapabilirsiniz:
Set<String> o = m1.entrySet()
.stream()
.flatMap(e -> Stream.concat(Stream.of(e.getKey()),e.getValue().stream()))
.collect(Collectors.toSet());
yani bir oluşturmak Stream<String>
her girdinin Map
.
Donovan, Şarkılarından 1'ini The Beatles'ın "Lucy in the Sky with Diamonds" şarkısıyla karşılaştırdı
Gene Simmons, KISS Çizgi Romanlarının Potansiyel Olarak "İnsanlığı Yeniden Yaratabileceğini" Söyledi
Kevin Jonas'ın Kızı Alena, Doğum Günü Fotoğrafında Büyümüş Görünüyor: '9 Yaşında Gerçek Hissetmiyor'
Charly Reynolds Yakın Zamandaki Vokal Kord Ameliyatını Açıkladı: 'Şarkı Söylemekte Sorun Yaşıyordum'