两
个
参
数
K
k
e
y
,
F
u
n
c
t
i
o
n
<
?
s
u
p
e
r
K
,
?
e
x
t
e
n
d
s
V
>
m
a
p
p
i
n
g
F
u
n
c
t
i
o
n
也
就
是
:
首
先
使
用
m
a
p
.
g
e
t
(
k
e
y
)
,
如
果
存
在
则
返
回
。
color{red}两个参数 K key, Function super K, ? extends V> mappingFunction 也就是:首先使用map.get(key),如果存在则返回。
两个参数Kkey,FunctionmappingFunction也就是:首先使用map.get(key),如果存在则返回。
如
果
不
存
在
,
则
调
用
第
二
个
函
数
,
产
生
一
个
对
象
返
回
color{red}如果不存在,则调用第二个函数,产生一个对象返回
如果不存在,则调用第二个函数,产生一个对象返回
注
意
这
里
还
会
将
对
象
塞
入
到
m
a
p
中
color{red}注意这里还会将对象塞入到map中
注意这里还会将对象塞入到map中
类似代码:
@Test public void test1() { Map复杂用法map = Maps.newHashMapWithExpectedSize(16); String a = map.get("a"); if (StringUtils.isBlank(a)) { a = "a没有值,手动赋值"; } String b = map.computeIfAbsent("b", x -> "b也是没有值,手动出去一个"); System.out.println(a); System.out.println(b); }
private Map> getPreviewProdSpuCurrentMinMaxMap(Set prodSpuIdSet, List previewPriceTimes) { Map > previewMinMaxMap = Maps .newHashMapWithExpectedSize(prodSpuIdSet.size()); if (CollectionUtil.isNotEmpty(prodSpuIdSet)) { previewPriceTimes.forEach(previewPriceTime -> { Map minMax = XXXXXXX.INSTANCE .getProdSpuCurrentMinMax(Lists.newArrayList(prodSpuIdSet), previewPriceTime.getTime()); minMax.forEach((k, v) -> previewMinMaxMap.computeIfAbsent(k, a -> Maps.newHashMapWithExpectedSize(3)) .put(previewPriceTime.getTime(), v)); }); } log.info(LogMsgKit.of("getPreviewProdSpuCurrentMinMaxMap").p("previewMinMaxMap", previewMinMaxMap) .end("获取预告价取价时间的起购件数!")); return previewMinMaxMap; }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)