Java中的computeIfAbsent方法用于在Map中根据指定键获取值,如果值不存在,则使用给定的函数计算值并将其存储在Map中。该方法的语法如下:

V computeIfAbsent(K key, Function<? super K, ? extends V> mappingFunction)

其中,key是要获取值的键,mappingFunction是计算值的函数。如果Map中存在指定键的值,则computeIfAbsent方法返回该值;否则,将使用mappingFunction计算新值,并将其存储在Map中,然后将其返回。

例如,以下代码段使用computeIfAbsent方法将一个字符串列表按长度分组:

List<String> strings = Arrays.asList("apple", "banana", "cherry", "date", "elderberry");
Map<Integer, List<String>> result = new HashMap<>();
for (String s : strings) {
    result.computeIfAbsent(s.length(), k -> new ArrayList<>()).add(s);
}
System.out.println(result);

输出结果为:

{5=[apple], 6=[banana, cherry], 4=[date], 10=[elderberry]}

在这个例子中,computeIfAbsent方法的作用是获取字符串的长度作为键,如果Map中不存在该键,则创建一个新的空列表作为值,并将其存储在Map中。如果Map中已经存在该键,则返回该键对应的值,并将字符串添加到该值中。

Java computeIfAbsent 怎么用

原文地址: https://www.cveoy.top/t/topic/bsQv 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录