业务开发时,你只是想把业务对象list转为map,你可能会使用guava
List<StoreGoods> list = new ArrayList<>();
// list.add(new StoreGoods(null));
list.add(new StoreGoods(1));
list.add(new StoreGoods(1));
Map<Integer, StoreGoods> map = Maps.uniqueIndex(list, new Function<StoreGoods, Integer>() {
@Override
public Integer apply(EurekaServerApplication input) {
return input.getId();
}
});
// 使用lambda写法
Map<Integer, EurekaServerApplication> map = Maps.uniqueIndex(list, input -> input.getId());
在业务中使用时,如果list里面存在重复元素(即key值相等的),则会直接报错。如果你仅仅想重复时直接覆盖,请千万不要使用guava。
附:key==null时也是会报错的喔~