Я хочу связать ключ и значение HashMap
с строкой с помощью:: и преобразовать их в список.Подключить ключ и значение HashMap к списку
Пример:
Map<String,String> tags = new HashMap<>();
tags.put("k1","v1");
tags.put("k2","v2");
то я хочу, чтобы получить строку
k1: v1, k2: v2
мой код:
private String transe(Map<String, String> tags) {
if (tags == null || tags.isEmpty()) {
return DEFAULT_STATUS_GROUP;
}
List<String> tagKVList = new ArrayList<>();
tags.forEach((key, value) -> tagKVList.add(String.join(":", key, value)));
tagKVList.sort((tag1, tag2) -> tag1.compareTo(tag2));
return tagKVList.stream().collect(Collectors.joining(","));
}
Как я могу удалить lo cal переменная tagKVList
и сделать код clearer?
лямбда-выражения приятная особенность, до сих пор вам не нужно их указывать лишние вещи. 'String' '' Comparable', поэтому у них есть метод compareTo, поэтому вам не нужно указывать 'compator' (tag1, tag2) -> tag1.compareTo (tag2). Вы можете просто использовать «tagKVList.sort (null)» или, если вам нравится безопасность типа, «tagKVList.sort (Comparator.naturalOrder())». – Holger