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

来源:互联网 发布:网络鬼差系统txt下载 编辑:程序博客网 时间:2024/05/16 01:56

实现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类型,再转为intSystem.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解包为intSystem.out.println(i);}Map m3 = new HashMap(m2);m3.putAll(m1);System.out.println(m3);}}