Java 8'e Bu örneği geçirmek istiyorum:Java 8 harita filtre ve sıralama
Map<String, String> data = new HashMap<String, String>() {{
put("name", "Middle");
put("prefix", "Front");
put("postfix", "Back");
}};
String title = "";
if (data.containsKey("prefix")) {
title += data.get("prefix");
}
if (data.containsKey("name")) {
title += data.get("name");
}
if (data.containsKey("postfix")) {
title += data.get("postfix");
}
Doğru çıkışı:
FrontMiddleBack
Ben entryset ile çalıştı -> akışı ama içinde dönmez doğru sipariş.
String titles = macroParams.entrySet().stream()
.filter(map -> "name".equals(map.getKey()) || "postfix".equals(map.getKey()) || "prefix".equals(map.getKey()))
.sorted()
.map(Map.Entry::getValue)
.collect(Collectors.joining());
Çıktı:
MidleFrontBack
Java 8 kullanarak aynı sonucu alabilir miyim?
Orijinal kod bozuldu. concat() ', çağrıldığı dizeyi değiştirmez. – shmosel
'HashMap' sırasız. Siparişi korumak istiyorsanız, 'LinkedHashMap' kullanın. – shmosel
* Java 8'e geçiş yapmayı denedim. * Java 8, geriye doğru uyumludur. Java'yı güncellediğinizden dolayı her bir kod satırını değiştirmeniz gerekmez. – shmosel