sim*_*mon 1 java collections guava java-7
我有一个清单
List<FeatureHolder> featureHolderList;
Run Code Online (Sandbox Code Playgroud)
由FeatureHolder对象组成
public class FeatureHolder {
private String flag;
private String value;
}
Run Code Online (Sandbox Code Playgroud)
现在,我需要从featureSetList中提取Map。当然,解决方案很简单:
Map<String, String> map = new HashMap<>();
for(FeatureHolder fh: featureHolderList){
map.put(fh.getFlag(), fh.getValue());
}
Run Code Online (Sandbox Code Playgroud)
问题是,在Java 7中是否有更好(更短)的方法?我已经研究了例如Google Collections和方法Maps.uniqueIndex,但是以这种方式执行转换所需的代码将更长,并且可读性可能较低。
使用Java 7,您的代码就可以了。
或者您可以使用Java 8
Map<String, Item> map = list.stream()
.collect(Collectors.toMap(Item::getKey,
item -> item));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1225 次 |
| 最近记录: |