MAP的使用
文章出处:http://www.singbon.com 作者:兴邦开发部 人气: 发表时间:2016年11月04日
Map的 属性
Map map=new HashMap() 理解
Map是接口,hashMap是Map的一种实现。接口不能被实例化。 Map map=new HashMap(); 就是将map实例化成一个hashMap。这样做的好处是调用者不需要知道map具体的实现,map接口与具体实现的映射java帮你做了。打个比方,A是一个头头,手下有几个人:张三,李四等等。A需要手下做一件事情,A关心的是有没有人做,而不关心到底是谁去做,A只需要喊一声:“来人!”具体的是哪个人进来帮你做事无所谓。 如果说这样写
HashMap map = new HashMap();就相当于你指定要张三做事:“来张三!
前者好,因为如果将来你可能会发现使用HashMap不满足要求,例如HashMap不是线程
安全的、HashMap对Put到里面的Key没有排序等。
如果使用后者则可能需要修改大量的地方
map是接口,不能用new出对象,hashmap是继承map接口的实现类,可以new出对象
实现map接口的类都城有如下属性,都是把其中数据做为key-value来放,即是就说的键值对。
Map map = new HashMap();比HashMap map = new HashMap();写法更好点,这是多态的一种体现,也是封装性的一种体现。
第一种可以改为Map map = new HashTable();后面的代码就不需要改变的,这样代码的变
动就小了,便于开发和维护。
如果用HashMap map = new HashMap();就会出现在查找程序中出现的每个地方来修改,这样会加大开发和维护的成本。在开发时我们尽量让类或者对象封装好,尽量实现多态,这样便于开发和维护。
Map.keyset()
Set keys=Map.keyset();
Set 是java中一个存储不重复元素,且无序的集合类。
Map.keyset(),表示将map对象的所有key值已set集合的形式返回,因为map也是无序的,且key值也是不可重复的,因此这里用set集合存储key并返回也符合规则。
Map.values方法——获取Map集合中的所有键值对象
该方法用来获取Map集合中的所有键值对象,这些键值对象将存放在另一个集合对象中。
语法 values()
示例 本示例创建一个Map集合对象并添加一些内容,然后调用values方法获取包
含所有键值的集合对象,并输出这些键值信息。
public static void main(String[] args) {
Map map = new HashMap(); //定义Map集合对象
map.put("apple", "新鲜的苹果"); //向集合中添加对象
map.put("computer", "配置优良的计算机");
map.put("book", "堆积成山的图书");
Collection values = map.values(); //获取Map集合的value集合
for (Object object : values) {
System.out.println("键值:" + object.toString()); //输出键值对象
}
}