当我使用Maps.uniqueIndex与包含重复值的列表,番石榴Maps.uniqueIndex不允许重复
java.lang.IllegalArgumentException: duplicate key: 836
at com.google.common.base.Preconditions.checkArgument(Preconditions.java:115)
被抛出。
我觉得这很不方便。我认为它确实有道理,但是如果函数需要唯一的集合才能正确工作,为什么它接受一个Iterable作为参数而不是Set?
List<GroupVO> groups = groupDao.getAll(groupIds);
Map<String,GroupVO> groupMap groupMap = Maps.uniqueIndex(groups, new Function<GroupVO,String>() {
public String apply(GroupVO vo) {
return vo.getId().toString();
}});
我希望有一个这个函数的版本,只是悄悄地覆盖而不是抛出异常。刚发生意外情况时再次被咬伤。似乎需要进行检查以确保此功能不会意外失败,而不是消除其优势(在我的情况下) – Marc