使用Java 8,您可以执行以下 *** 作:
Map<String, String> byNameMap = new HashMap<>();people.forEach((k, v) -> byNameMap.put(k, v.getName());
尽管使用Guava的Maps.transformValues会更好,它会包裹原始文件
Map并在执行时进行转换
get,这意味着您仅在实际消耗该值时才支付转换成本。
使用番石榴看起来像这样:
Map<String, String> byNameMap = Maps.transformValues(people, Person::getName);
编辑:
遵循@Eelco的评论(并且为了完整性),使用Collectors.toMap这样更好地转换为地图,如下所示:
Map<String, String> byNameMap = people.entrySet() .stream() .collect(Collectors.toMap(Map.Entry::getKey, (entry) -> entry.getValue().getName());
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)