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
を作成し、コードを明確にしますか?
をラムダ式は便利な機能です、まだあなたが冗長なものを指定するためにそれらを必要はありません。 'String'は' Comparable'なので、 'compareTo'メソッドを持っているので、'(tag1、tag2) - > tag1.compareTo(tag2) 'コンパイラを指定する必要はありません。あなたは 'tagKVList.sort(null)'を使うことができます。また、型安全性を望むなら 'tagKVList.sort(Comparator.naturalOrder())'を使うこともできます。 – Holger