1.Map接口常用的实现类有HashMap和TreeMap.
2.HashMap类实现的Map集合对于添加和删除映射关系效率更高。HashMap是基于哈希表的Map接口的实现,HashMap通过哈希码对其内部的映射关系进行快速查询,由HashMap类实现的Map集合对于添加或删除映射关系效率较高。
3.TreeMap中的映射关系存在一定的顺序,如果希望Map集合中的对象存在一定的顺序,该使用TreeMap类实现Map集合。
HashMap类
①此类不保证映射的顺序,特别是不保证该顺序恒久不变
②此类实现提供所有可选的映射关系,并允许使用null值和null键,但是必须保证键的唯一性
③此类通过哈希码对其内部的映射关系进行查找
TreeMap类
①该类不仅实现了Map接口,还实现了java.util.SortedMap接口,因此集合中的映射关系具有一定顺序
②由于TreeMap实现的Map集合中的映射关系是根据键对象按照一定的顺序排列的,因此不允许键对象是null
③在添加,删除和定位 映射关系,TreeMap类比HashMap类的性能差一些
可以通过HashMap类创建Map集合,当需要顺序输出时,在创建一个完成相同映射关系的TreeMap
首先创建一个Map集合,并添加集合对象,分别遍历由HashMap类与TreeMap类实现的Map集合,观察两者的区别,代码如下:
package com.naya.Person; public class Emp { private String e_id; private String e_name; public Emp(String e_id,String e_name) { this.e_id=e_id; this.e_name=e_name; } public String getE_id() { return e_id; } public void setE_id(String e_id) { this.e_id = e_id; } public String getE_name() { return e_name; } public void setE_name(String e_name) { this.e_name = e_name; } }
package com.naya.Person; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; import java.util.TreeMap; public class MapText { public static void main(String[] args) { Map map=new HashMap(); //由HashMap实现的Map对象 Emp emp=new Emp("001","张三"); Emp emp2=new Emp("005","李四"); Emp emp3=new Emp("004","王一"); map.put(emp.getE_id(), emp.getE_name()); map.put(emp2.getE_id(), emp2.getE_name()); map.put(emp3.getE_id(), emp3.getE_name()); System.out.println(map); //获取Map集合中的key对象集合 Set set=map.keySet(); System.out.println(set); System.out.println("HashMap类实现的Map集合,无序"); Iterator it=set.iterator(); while(it.hasNext()){ String str=(String)it.next(); String name=(String)map.get(str); System.out.println(str+":"+name); } System.out.println("TreeMap类实现的Map集合,键对象升序"); TreeMap treemap=new TreeMap(); //创建TreeMap集合对象 treemap.putAll(map); System.out.println(treemap); Iterator iter=treemap.keySet().iterator(); while(iter.hasNext()){ String str=(String)iter.next(); String name=(String)map.get(str); System.out.println(str+":"+name); } } }
运行的结果:
时间: 2024-10-13 04:54:55