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

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)-认识Map12. * 将键映射到值的对象。13. * 一个映射不能包含重复的键;每个键最多只能映射到一个值。14. * 15. * 相关API请查看 api.xxxxxx/Map16. * 17. * @18. */19.public class Lession {20. public static void main(String[] args) {21. // 构造一个Map22. // 我们使用HashMap进行测试23. Map map = new HashMap();24.25. // 查看map是否为空26. System.out.println(map.isEmpty()); // true27.28. // 存入数据29. // put方法会返回原来的值30. // 如果是第一次赋值,则返回null;31. System.out.println(map.put("id", "123")); // null32. map.put("name", "xyz");33.34. // 再次查看map是否为空35. System.out.println(map.isEmpty()); // false36.37. // 查看有多少数据了38. System.out.println("size=" + map.size()); // size=239.40. // 查看所有的数据41. showMap(map); // id=>123; name=>xyz;42.43. // 获取数据44. System.out.println("name=" + map.get("name")); // name=xyz45.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")); // 12367.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")); // true76. // 查找Value77. System.out.println(map.containsValue(list)); // true78.79. // 删除一些数据80. // 是根据key进行删除的81. System.out.println(map.remove(m)); // map in map82. 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 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.size() + "/" + map.size()); // 4/493.94. // 尝试通过entrySet删除95. IteraTor it = ms.iteraTor();96. if (it.hasNext()) {97. Entry e = it.next();98. System.out.println(e.getKey() + "=" + e.getValue()); // id=45699. it.remove();100. }101. System.out.println(ms.size() + "/" + map.size()); // 3/3102.103. // 清除所有数据104. map.clear();105. System.out.println(ms.size() + "/" + map.size()); // 0/0106. }107.108. public static void showMap(Map map) {109. // 迭代Key的操作110. IteraTor it = map.keySet().iteraTor();111. Object key;112. while (it.hasNext()) {113. key = it.next();114. System.out.print(key + &qu 才会看到属于自己的那一片晴朗的天空。

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

相关文章:

你感兴趣的文章:

标签云: