快速业务通道

JAVA提高教程(11)-认识Map - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17

JAVA提高教程(11)-认识Map

时间:2011-04-07 csdn 老紫竹

Map可以为某些数据提供快速查找功能,通过关键字(key)可以快速的得到对应的 Value,而不用像List那样需要大范围的遍历或特别的算法。

1. 源代码

1.import java.util.ArrayList; 2.import java.util.HashMap; 3.import java.util.HashSet; 4.import java.util.Iterator; 5.import java.util.List; 6.import java.util.Map; 7.import java.util.Set; 8.import java.util.Map.Entry; 9. 10./** 11. * 老紫竹JAVA提高教程(11)-认识Map<br> 12. * 将键映射到值的对象。<br> 13. * 一个映射不能包含重复的键;每个键最多只能映射到一个值。<br> 14. * <br> 15. * 相关API请查看 api.java2000.net/Map 16. * 17. * @author 老紫竹 JAVA世纪网(java2000.net) 18. */19.public class Lession { 20. public static void main(String[] args) { 21. // 构造一个Map 22. // 我们使用HashMap进行测试 23. Map map = new HashMap(); 24. 25. // 查看map是否为空26. System.out.println(map.isEmpty()); // true 27. 28. // 存入数据 29. // put方法会返回原来的值 30. // 如果是第一次赋值,则返回null; 31. System.out.println(map.put("id", "123")); // null 32. map.put("name", "xyz"); 33. 34. // 再次查看map是否为空 35. System.out.println(map.isEmpty()); // false 36. 37. // 查看有多少数据了 38. System.out.println("size=" + map.size()); // size=2 39. 40. // 查看所有的数据 41. showMap(map); // id=>123; name=>xyz; 42. 43. // 获取数据 44. System.out.println("name=" + map.get("name")); // name=xyz 45. 46. // 放入不同key类型的数据 47. map.put(new Integer(1), new Object()); 48. // 放入集合类型 49. Set set = new HashSet(); 50. set.add(111); 51. set.add(222); 52. List list = new ArrayList(); 53. list.add(333); 54. list.add(444); 55. map.put(set, list); 56. // 甚至放入Map类型 57. Map m = new HashMap(); 58. m.put("mm", "mmmm"); 59. map.put(m, "map in map"); 60. 61. // id=>123; 1=>java.lang.Object@de6ced; {mm=mmmm}=>map in map; name=>xyz; 62. // [222, 111]=>[333, 444]; 63. showMap(map); 64. 65. // 我们尝试放入重复key的数据 66. System.out.println(map.put("id", "456")); // 123 67. 68. // 可以看到,原来的数据value被覆盖了 69. // id=>456; 1=>java.lang.Object@de6ced; {mm=mmmm}=>map in map; name=>xyz; 70. // [222, 111]=>[333, 444]; 71. showMap(map); 72. 73. // 检查是否存在我们需要的数据 74. // 查找key值 75. System.out.println(map.containsKey("name")); // true 76. // 查找Value 77. System.out.println(map.containsValue(list)); // true 78. 79. // 删除一些数据 80. // 是根据key进行删除的 81. System.out.println(map.remove(m)); // map in map 82. showMap(map); // id=>456; 1=>java.lang.Object@de6ced; name=>xyz; [222, 83. // 111]=>[333, 444]; 84. 85. // Entry的集合 86. // 内部就是Map实现的,所以对其操作是互相影响的 87. // 不支持add操作, 88. Set<Entry> ms = map.entrySet(); 89. 90. // [id=456, 1=java.lang.Object@de6ced, name=xyz, [222, 111]=[333, 444]] 91. System.out.println(ms); 92. System.out.println(ms.

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号