hashmap常用操作

参考 

https://blog.csdn.net/u013398759/article/details/77679632

https://www.cnblogs.com/hanlk/p/11229058.html

键值对数据遍历

(1)将Map中所有的键装到Set集合中返回

//public Set<K> keySet();
Set<K> set=map. keySet() 

获得所有key的集合     
Set<String> keys = map.keySet();      
Iterator<String> it = keys.iterator(); // 获得key的迭代器       
while (it.hasNext()) {       
    String key = it.next(); // 迭代器是key的迭代器    
}     

(2)返回集合中所有的value的值的集合

// public Collection<V> values();
Collection<V> c=map.values()

获得所有的值values-->返回值为List       
for (String value : map.values()) {          
    System.out.println(value);    
}     
该方法不正确,会报错    
ArrayList<String> ls= (ArrayList<String>) map.values();       
如下正解      
List<String> ls = new ArrayList<String>(map.values());

 

(3)将每个键值对封装到一个个Entry对象中,再把所有Entry的对象封装到Set集合中返回

// public Set<Map.Entry<K,V>> entrtSet();
Set<Map.Entry<K,V>> entrys=map.entrySet()

// 遍历map的第一种方式

Set<Map.Entry<String, String>> entry = map.entrySet();     
Iterator<Map.Entry<String, String>> ite = entry.iterator();       
while (ite.hasNext()) {          
    Map.Entry<String, String> en = ite.next();       
    System.out.println(en.getKey() + " --> " + en.getValue());    
}     

// 遍历map的第二种方式    
 for (Map.Entry<String, String> en : map.entrySet()) {       
    System.out.println(en.getKey() + " --> " + en.getValue());    
 }
举例
      Map<String, List<Object>> map = new HashMap<String, List<Object>>();

        List<Object> list = new ArrayList<>();
        list.add(123);
        list.add(true);
        list.add(3.456);
        list.add("打开空调");
        list.add("开空调");
        list.add("启动空调");
        map.put("openac", list);

        List<Object> list1 = new ArrayList<>();
        list1.add(0);
        list1.add(false);
        list1.add(0.456);
        list1.add("关闭空调");
        list1.add("关空调");
        list1.add(" ");
        map.put("closeac", list1);
        Log.d("MyService", "has map ----");

        //(2)返回集合中所有的value的值的集合
        Collection<List<Object>> values = map.values();
//        List<List<Object>> values = new ArrayList<List<Object>>(map.values());
        for (List<Object> value : values) {
            Log.d("MyService", "has value ----" + value);
            if (value.contains("开空调")) {
                Log.d("MyService", "has 开空调 ----");
            }
        }

        //(3)将每个键值对封装到一个个Entry对象中,再把所有Entry的对象封装到Set集合中返回
        Set<Map.Entry<String, List<Object>>> entries = map.entrySet();
        for (Map.Entry<String, List<Object>> entry : entries) {
            String key = entry.getKey();
            List<Object> value = entry.getValue();
            Log.d("MyService", "key:" + key + "  and  value:" + value);
        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
HashMap是Java中常用的数据结构之一,它提供了一系列常用的方法来操作和管理键值对。以下是HashMap的几个常用方法: 1. put(key, value): 向HashMap中添加键值对。使用put方法可以将指定的键和值添加到HashMap中。例如,`hashtable.put(1, 5);`将键1和值5添加到HashMap中。\[1\] 2. get(key): 获取指定键对应的值。使用get方法可以根据指定的键获取对应的值。例如,`System.out.println(Sites.get(3));`将返回键为3的值"Taobao"。\[2\] 3. remove(key): 移除指定键对应的键值对。使用remove方法可以根据指定的键移除对应的键值对。例如,`hashtable.remove(4);`将移除键为4的键值对。\[1\] 4. clear(): 清空HashMap中的所有键值对。使用clear方法可以清空HashMap中的所有键值对。例如,`hashtable.clear();`将清空HashMap中的所有键值对。\[1\] 5. size(): 获取HashMap中键值对的数量。使用size方法可以获取HashMap中键值对的数量。例如,`System.out.println(Sites.size());`将返回HashMap中键值对的数量4。\[3\] 这些是HashMap的一些常用方法,通过使用它们可以方便地对HashMap进行操作和管理。 #### 引用[.reference_title] - *1* [HashMap常用方法(简版)](https://blog.csdn.net/m0_51524792/article/details/122738073)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [HashMap 常用方法总结](https://blog.csdn.net/weixin_44760073/article/details/119783822)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值