26-其他说明
其他说明
ConcurrentHashMap
还有远比前一部分内容更多的方法。
forEachKey()
和forEachValue()
:这些方法与forEach()
方法相似,但在本案例中,lambda表达式却同时处理了ConcurrentHashMap
的key和value。searchEntries()
、searchKeys()
和searchValues()
:这些方法与之前介绍过的search()
方法很相似。但是,在本案例中,作为参数来传递的lambda表达式接收存储在ConcurrentHashMap
中元素的一个Entry
对象、一个key或一个value。reduceEntries()
、reduceKeys()
和reduceValues()
:这些方法与之前介绍过的reduce()
方法很相似。但是,在本案例中,作为参数来传递的lambda表达式接收存储在ConcurrentHashMap
中的元素的一个Entry
对象、一个key或一个value。reduceXXXToDouble()
、reduceXXXToLong()
和reduceXXXToInt()
:这些方法可以通过生成一个double
、long
或者int型
值来促使ConcurrentHashMap
的元素聚合起来。computeIfPresent()
:该方法是computeIfAbsent()
方法的补充。在本案例中,它接收一个key和一个实现BiFunction
接口的lambda表达式。如果key已经存在于HashMap中,该方法就会执行lambda表达式来计算key的新value。BiFunction
接口以key和实际的value作为接收参数,它还会返回一个新的value。merge()
:该方法以key、value以及实现BiFunction接口的lambda表达式作为接收参数。如果key不存在于ConcurrentHashMap
中,则它就会插入对应的value。如果它存在,则执行BiFunction
来计算与key相对应的新value。BiFunction
接口以key和它的实际value作为接收参数,并返回与key对应的新value。getOrDefault()
:该方法以key和一个默认的value作为接收参数。如果key存在于ConcurrentHashMap
中,则它会返回对应的value。