Collection(七) Map -----autoboxing and unboxing

本文介绍Java中Map接口的基本使用方法及实例,展示了如何利用HashMap和TreeMap存储键值对,并探讨了自动装箱拆箱的过程。

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

实现Map接口的类用于存储键-值对,通过键来标示,因此键是不能重复的。

以下是Map中的常用方法的例子:

 

public class MapTest {
	public static void main(String[] args) {
		Map m1 = new HashMap();
		Map m2 = new TreeMap();
		m1.put("one", new Integer(1));
		m1.put("two", new Integer(2));
		m1.put("three", new Integer(3));
		m2.put("six", new Integer(6));
		m2.put("seven", new Integer(7));
		System.out.println(m1.get("two"));//返回key所对应的value对象
		System.out.println(m1.containsKey("three"));
		System.out.println(m1.containsValue(new Integer(2)));
		m1.put("three", new Integer(30));//若Map中存在key为three则将新的value替换原有的
		System.out.println(m1);
		m1.put("five", new Integer(5));//若Map中不存在key为five则直接将键值对插入
		System.out.println(m1);
		if(m1.containsKey("five")){
			int i = ((Integer)m1.get("five")).intValue();//m1.get("five")是以Object类型返回的,
			                                             //需要强制转换为Integer类型,再转为int
			System.out.println(i);
		}
		Map m3 = new HashMap(m2);
		m3.putAll(m1);
		System.out.println(m3);
	}
}

 

自动打包和解包:

打包:将基础类型转换为对象;解包:将对象转换为基础类型。 利用上述例子解释下:

public class MapTest {
	public static void main(String[] args) {
		Map m1 = new HashMap();
		Map m2 = new TreeMap();
		//m1.put("one", new Integer(1));
		m1.put("one", 1);//自动将int类型的1打包为new Integer(1)
		//m1.put("two", new Integer(2));
		m1.put("two", 2);
		//m1.put("three", new Integer(3));
		m1.put("three", 3);
		//m2.put("six", new Integer(6));
		m2.put("six", 6);
		//m2.put("seven", new Integer(7));
		m2.put("seven", 7);
		System.out.println(m1.get("two"));
		System.out.println(m1.containsKey("three"));
		//System.out.println(m1.containsValue(new Integer(2)));
		System.out.println(m1.containsValue(2));
		//m1.put("three", new Integer(30));
		m1.put("three", 30);
		System.out.println(m1);
		//m1.put("five", new Integer(5));
		m1.put("five", 5);
		System.out.println(m1);
		if(m1.containsKey("five")){
			//int i = ((Integer)m1.get("five")).intValue();
			int i = (Integer)m1.get("five");//(Integer)m1.get("five")自动将Integer解包为int
			System.out.println(i);
		}
		Map m3 = new HashMap(m2);
		m3.putAll(m1);
		System.out.println(m3);
	}
}


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值