Map的读写

1、Map如何获取所有value的值

/** 
 *  
 * Map获取集合所有value值
 * 
 */  
public class MapDemo   
{  
    public static void main(String[] args)  
    {  
        Map<String,Integer> m = new HashMap<String,Integer>();  
          
        m.put("zhangsan", 19);  
        m.put("lisi", 49);
        m.put("wangwu", 19);  
        m.put("lisi",20);
        m.put("hanmeimei", null);         
        System.out.println(m);  
          
        System.out.println(m.values()); 
    }  
}

 

 2、遍历map

 Map<String,String> map = new HashMap<String,String>();
 map.put("b","4");
 map.put("a","5");
 map.put("c","3");
 map.put("d","5");


//通过map.keySet()方法
//方法一:通过得到key的值,然后获取value;
  for(String key : map.keySet()){
   String value = map.get(key);
   System.out.println(key+":"+value);
  }


//输出key=a的value值
for(String key : map.keySet()){
	 if(key=="a"){
	     System.out.println(key+":"+map.get(key));
	 }
}

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
std::map 是 C++ STL 中的一个关联容器,它提供了一种将键值与值相关联的方式。当多个线程同时访问 std::map 时,为了保证数据的正确性,需要使用读写锁进行保护。 读写锁是一种特殊的锁,它允许多个线程同时读取共享资源,但只允许一个线程进行写入操作。在 std::map 中,读操作包括查找元素和读取元素值,写操作包括插入、修改和删除元素。 在 C++11 中,可以使用 std::shared_mutex 类来实现读写锁。其中,std::shared_lock 用于读取共享资源,std::unique_lock 用于写入共享资源。 下面是一个使用 std::shared_mutex 来保护 std::map 的示例代码: ```c++ #include <map> #include <shared_mutex> std::map<int, int> my_map; std::shared_mutex my_mutex; void read_map(int key) { std::shared_lock<std::shared_mutex> lock(my_mutex); auto it = my_map.find(key); if (it != my_map.end()) { int value = it->second; // 读取元素值 } // 释放锁 } void write_map(int key, int value) { std::unique_lock<std::shared_mutex> lock(my_mutex); my_map[key] = value; // 释放锁 } ``` 在上面的代码中,read_map() 函数使用 std::shared_lock 对 my_mutex 上锁,以读取 my_map 中指定键的元素值。write_map() 函数使用 std::unique_lock 对 my_mutex 上锁,以修改 my_map 中指定键的元素值。 需要注意的是,在使用 std::shared_mutex 时,写锁对读锁是互斥的,即写锁会阻塞所有读锁和写锁。因此,在使用 std::shared_mutex 时需要注意避免死锁的情况。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lifewange

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值