MAP集合练习

本文深入探讨了Java中HashMap集合的使用技巧,包括未指定类型与指定类型的键值对操作,展示了如何通过不同方式遍历HashMap,以及如何在实际场景中应用HashMap进行数据处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package collection;

import java.util.HashMap;
import org.junit.Test;

/**
 * 
 * @function: MAP集合练习
 *1、指定类型。2、未指定类型
 *
 * @author:陆立均
 * @date:2018年12月16日
 *
 */
public class Map {
    
    /**
     * 未指定键、值类型
     * 
     * 键值为任意类型 ,都为Object类型
     */
    @Test
    public void hmap(){
        HashMap map=new HashMap();
        map.put(1, 100);
        map.put("name","王五");
        //遍历获取键
        for(Object o : map.keySet()){
            //根据键取值
            Object obj=map.get(o);
            System.out.println("o:"+obj);
        }
        
    }

    /**
     * 指定键值类型
     * 
     * 键为Integer类型,值为字符串类型
     * 
     */
    @Test
    public void opperMap_01() {
        // 构造一个具有默认初始容量 (16) 和默认加载因子 (0.75) 的空 HashMap。只有调用put的方法的时候才真正的创建数组
        HashMap<Integer, String> hMap = new HashMap<Integer, String>();  //不创建数组的,所以结论是 0
        //Map<String, String> m0 = new HashMap<>(0);
        
        hMap.put(1, "100");
        hMap.put(2, "002");
        hMap.put(3, "006");
        hMap.put(3, "006"); //重复时,被覆盖
        // 遍历集合方式一
        for (Integer id : hMap.keySet()) {
            String value = hMap.get(id);
            System.out.print("id:"+id);
             System.out.println(",值:"+value);
        }

        // // 遍历集合方式二:通过Map.values()遍历所有的value,但不能遍历key")
        for (String v : hMap.values()) {
            //System.out.println("value= " + v);
        }

        // 第三种:推荐,尤其是容量大时
        System.out.println("第三种:通过Map.entrySet遍历key和value");
        for (HashMap.Entry<Integer, String> entry : hMap.entrySet()) {
            // Map.entry<Integer,String> 映射项(键-值对) 有几个方法:用上面的名字entry
            // entry.getKey() ;entry.getValue(); entry.setValue();
            // map.entrySet() 返回此映射中包含的映射关系的 Set视图。
            
            //    System.out.println("key= " + entry.getKey() + " and value= "            + entry.getValue());
        }
    }
    
    /**
     * 指定键、值类型。
     * 
     * 键是字符串类型,值为Student对象
     */
    @Test
    public void hashMap(){
        HashMap<String,Student> hs=new HashMap<String,Student>();
        hs.put("01", new Student("1","张三"));
        hs.put("02",new Student("2","lisi"));
        //
        for(String id:hs.keySet()){
            Student student=hs.get(id);
            System.out.print("学生:"+student.id);
            System.out.println("名字:"+student.name);
        }
    }
}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值