public class Test {
public static void main(String[] args) {
HashMap<String, String> m = new HashMap<>();
m.put("abc", null);
m.entrySet().parallelStream().collect(Collectors.toMap(e -> e.getKey(), e -> e.getValue()));
}
}
但是collectors.tomap(列表如下):
public static <T, K, U, M extends Map<K, U>>
Collector<T, ?, M> toMap(Function<? super T, ? extends K> keyMapper,
Function<? super T, ? extends U> valueMapper,
BinaryOperator<U> mergeFunction,
Supplier<M> mapSupplier) {
BiConsumer<M, T> accumulator
= (map, element) -> map.merge(keyMapper.apply(element),
valueMapper.apply(element), mergeFunction);
return new CollectorImpl<>(mapSupplier, accumulator, mapMerger(mergeFunction), CH_ID);
}
使用合并方法:
@Override
public V merge(K key, V value,
BiFunction<? super V, ? super V, ? extends V> remappingFunction) {
if (value == null)
throw new NullPointerException();
if (remappingFunction == null)
throw new NullPointerException();
...
如果map值为null,您将得到NPE。
我有一堆数据类,其中的值需要为null,因为数据库可能会为某些字段返回null。 据我所知,只有当Long是实际的Long而不是null时,才应该将该值传递给ApiClass构造函数,如果它是null,我会假设它将保持在构造中给出的默认值(在本例中为0) Info.extendedinfo.income是一个Long,它也可能是null,但是如果是null,它应该映射为0。 但是既然数据类很长呢?
我刚开始冬眠,尝试一些应该很容易的事情,但我无法让它工作。 有两个表,一个人和一个地址。一个人可以有一个或多个地址,即:一个OneTo多映射。当我试图向两个不同的人添加相同的地址时,我会遇到异常。这几乎就像Unique在连接表的foriegn_key上被强制执行一样。 我的源代码: 人 地址 主要 代码在保存Person对象Harry时崩溃。这是因为在个人地址表中,引用“1”的地址已经存在并分配给
我在Spring启动时使用推土机映射器。如果我将数据从实体映射到EntityDTO,那么dozer maper的工作就是将数据从实体类复制到EntityDTO,对于原语也是如此。但是假设我有这样一门课 和名称为EntityDTO的DTO 那么它不会将数据从entityChild映射到EntityChildTos,有人能帮我解决这个问题吗?
我有映射键作为字符串和值作为列表。列表可以有10个唯一值。我需要转换这个映射键为整数和值为列表。示例如下: 输入: 2:“钥匙-1”,“钥匙-2” 3:“钥匙-1”、“钥匙-2”、“钥匙-3” 4:“钥匙-1”、“钥匙-2”、“钥匙-3”
在Java8中使用和我是新手。我目前正在使用库来实现一些ML算法。我有以下代码: 如果数据正确或为空,函数将返回一个新的。如何在之后过滤(删除)对象?
输入: 输出: 输入: 线程“main”java.lang.IllegalStateException中的异常:重复键-1.0 我怎么才能修好这个?