Get和Put有什么区别
时间: 2023-12-03 07:05:52 浏览: 90
Get和Put是两个常见的操作,它们的主要区别在于:
1. Get操作通常用于从某个数据结构中获取数据,而Put操作则用于将数据放入某个数据结构中。
2. Get操作通常是只读的,即获取数据但不修改数据;而Put操作则是写操作,即将数据写入数据结构中,可能会修改数据。
3. Get操作通常是幂等的,即多次执行Get操作返回的结果相同;而Put操作不一定是幂等的,即多次执行Put操作可能会导致数据状态发生变化。
总的来说,Get操作和Put操作是两种不同的操作,用于不同的目的。Get用于读取数据,而Put用于写入数据。
相关问题
ConcurrentHashMap的put和get区别
ConcurrentHashMap的put方法和get方法在实现上有一些区别。
1. put方法:
ConcurrentHashMap的put方法使用了锁分段技术,将整个哈希表分成了一系列的段(Segment)。每个段相当于一个小的哈希表,拥有自己的锁。当同时有多个线程进行put操作时,每个线程只会锁住自己所属的段,而不是锁住整个哈希表。这样可以有效地减小了多线程竞争的范围,提高了并发性能。
2. get方法:
ConcurrentHashMap的get方法并不需要进行加锁操作,因为读操作并不涉及到修改数据的操作。多个线程可以同时进行get操作,不会发生竞争。这样可以提高读取性能。
hashmap的get和put原理
HashMap 是一种基于哈希表实现的键值对存储结构,它的 get 和 put 方法如下:
put(K key, V value) 方法:
1. 首先计算 key 对应的哈希值,如果哈希表中不存在该哈希值,则创建一个新的桶并插入该键值对。
2. 如果哈希表中已经存在该哈希值,则找到该桶并遍历其中的链表,如果链表中存在该 key,则替换其对应的 value 值。
3. 如果链表中不存在该 key,则在链表的尾部插入新的键值对。
get(Object key) 方法:
1. 计算 key 对应的哈希值,如果哈希表中不存在该哈希值,则返回 null。
2. 如果哈希表中存在该哈希值,则遍历该桶对应的链表,查找是否存在该 key,如果存在,则返回其对应的 value 值,否则返回 null。
总的来说,HashMap 的 get 和 put 方法都是基于哈希值的计算和桶的遍历实现的,其中 put 方法还需要处理链表的插入和替换操作。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)