`

JDK学习--java.util.concurrent.ConcurrentMap输出及输入

阅读更多
新的 java.util.concurrent.ConcurrentMap 接口和 ConcurrentHashMap 实现只能在键不存在时将元素加入到 map 中,只有在键存在并映射到特定值时才能从 map 中删除一个元素。

ConcurrentMap中有一个新的 putIfAbsent() 方法用于在 map 中进行添加。这个方法以要添加到 ConcurrentMap 实现中的键和值为参数,就像普通的 put() 方法,但是只有在 map 不包含这个键时,才能将键加入到 map 中。如果 map 已经包含这个键,那么这个键的现有值就会返回。这个操作等于于清单9的代码:

if (!map.containsKey(key))

return map.put(key, value);

else

return map.get(key);



像 putIfAbsent() 方法一样,重载后的 remove() 方法有两个参数 —— 键和值。在调用时,只有当键映射到指定的值时才从 map 中删除这个键。如果不匹配,那么就不删除这个键,并返回 false。如果值匹配键的当前映射内容,那么就删除这个键。清单 10 显示了这种操作的等价源代码:



if (map.get(key).equals(value)) {

map.remove(key);

return true;

} else {

return false;

}
分享到:
评论

相关推荐

    jdk-8u231-windows-x64.zip

    函数式接口是指只有一个抽象方法的接口,例如`java.util.function.Function`、`java.util.concurrent.Callable`等。这些接口可以与Lambda表达式结合,增强了Java的多态性。 3. **方法引用和构造器引用**:除了...

    jdk-api-1.8.CHM Java帮助手册中文版

    - `java.io`:提供了输入/输出流相关的类,用于数据的读写操作。 - `java.util`:包含各种实用工具类,如集合、日期时间、随机数生成等。 - `java.net`:支持网络编程,如套接字(Socket)和URL。 **新特性** Java ...

    jdk-1.8-64.rar

    这种特性使得代码更加紧凑,特别是在处理集合和并发任务时,如使用java.util.concurrent包中的函数接口。 3. 函数式编程支持: Java 8增强了对函数式编程的支持,引入了函数式接口(如Runnable、Consumer、...

    JDK17-java-core-libraries-developer-guide.pdf

    3. **输入/输出**:`java.io`包提供了处理流、文件、序列化等功能,支持数据的读写操作。 4. **网络编程**:`java.net`包包含网络通信所需的基础类和接口,如`Socket`、`ServerSocket`,支持TCP/IP通信。 5. **多...

    全中文Java-Jdk-1.8api参考手册.zip

    此外,还有`java.io`用于输入输出操作,`java.util`包含集合框架、日期时间、数据结构等实用工具。 2. **集合框架**:在`java.util`包下,集合框架如`List`、`Set`、`Map`接口及其实现类如`ArrayList`、`HashSet`、...

    java1.8 API 官方帮助文档(jdk-8u151-docs-all HTML版)

    8. **新的并发工具类**:Java 8扩展了`java.util.concurrent`包,增加了如`ForkJoinPool`和`CompletableFuture`等新工具,提供了更好的并行计算支持。 9. **改进的类型推断**:Java编译器在Java 8中增强了类型推断...

    jdk8u171-linux-x64.tar.zip

    Java 8引入了诸如`java.util.function.Function`、`java.util.concurrent.Callable`等预定义的函数式接口。 4. **Stream API**: Stream API允许对集合数据进行声明式处理,支持序列和并行操作,提供丰富的中间操作...

    java-1.8-source.zip

    8. **改进的并发**:`java.util.concurrent` 包中的一些类和接口进行了增强,如 `ForkJoinPool` 和 `CompletableFuture`,以支持更高效的并行计算。 9. **新的集合工厂方法**:例如 `List.of()`、`Set.of()` 和 `...

    出现java.util.ConcurrentModificationException 问题及解决办法

    import java.util.concurrent.*; ConcurrentHashMap, String> bb = new ConcurrentHashMap(); bb.put("1", "wj"); bb.put("2", "ry"); for (String key : bb.keySet()) { bb.remove(key); } ``` 在编写多...

    JDK7-API-帮助文档(英文版).rar

    4. **多线程**:`java.lang.Thread`和`java.util.concurrent`包提供了多线程编程的支持,`java.util.concurrent`在JDK 7中进一步完善,增加了并发工具类,如`ExecutorService`和`Future`。 5. **异常处理**:`java....

    jdk1.8.0_131.zip

    2. **函数式接口**:为了支持Lambda,Java 8引入了函数式接口的概念,如`java.util.function.Function`、`java.util.concurrent.Callable`等。这些接口有一个抽象方法,可以被Lambda表达式实现。 3. **方法引用**:...

    java api文档jdk-6u30-apidocs

    `java.io`则涉及输入/输出操作,包括文件读写、流处理等。 2. **集合框架**:Java API 6u30中的集合框架是一个强大的工具,它允许开发者高效地存储和操作数据。其中包括接口如`List`、`Set`和`Map`,以及实现这些...

    java11英文api文档,jdk-11.0.5_doc-all.zip

    2. **集合框架**:Java 11的API文档详细介绍了`java.util`包下的集合框架,如List、Set、Map接口以及实现这些接口的类,如ArrayList、HashSet和HashMap。Java 11在此基础上新增了`java.util.stream`包,提供了流API...

    jdk6-api-zh_CN(java API 中文文档)

    3. **输入/输出流**:`java.io`包包含了处理文件、网络和内存数据流的类,如`FileInputStream`、`OutputStream`、`BufferedReader`等。 4. **网络编程**:`java.net`包提供了网络通信的支持,包括`Socket`、`...

    JDK1.6 API帮助文档

    - **java.io**: 处理输入输出操作,包括文件读写、流操作、序列化等。 - **java.net**: 支持网络编程,包括套接字(Socket)、服务器套接字(ServerSocket)、URL类等。 2. **集合框架** - **List**: 有序的可变...

    jdk api 1.8 chm 中文文档.zip

    - **IO流**:`java.io`包提供了输入/输出流,支持字节流和字符流,以及缓冲流、转换流等。 - **NIO(非阻塞I/O)**:`java.nio`包提供了异步I/O操作,包括通道(Channel)和选择器(Selector)等。 - **多线程**...

    JDK8文档 jdk-1.8.0_221 jdk-8u221 API文档

    并发包`java.util.concurrent`中增加了Fork/Join框架,用于实现高效的多线程计算。另外,ConcurrentHashMap也进行了优化,提供了更丰富的操作和更好的性能。 10. ** Nashorn JavaScript引擎** JDK8集成了Nashorn ...

    jdk_1_5_0-API中文文档.rar

    2. **核心库**:如`java.io`包,提供了用于输入/输出操作的类,包括文件读写、流处理等;`java.net`包则包含了网络通信相关的类,如Socket和ServerSocket。 3. **高级特性**:Java 1.5引入了一些新特性,如枚举类型...

    Redis客户端Redisson.zip

    java.util.SortedSet 分布式 java.util.Queue 分布式 of java.util.Deque 分布式 java.util.Map 分布式 java.util.concurrent.ConcurrentMap 通过TTL实现可重入 java.util.concurrent.locks.Lock 分布式 ...

    jdk1.8.0_131源码: src.jar

    JDK 1.8在并发编程方面也有重大改进,如`java.util.concurrent`包下的`ForkJoinPool`和`CompletableFuture`。`ForkJoinPool`利用分治策略提高多线程计算效率,而`CompletableFuture`提供了异步编程的高级抽象。通过...

Global site tag (gtag.js) - Google Analytics