Java基础中map接口和实现类

时间:2020-12-05 23:27:16

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);
}

}
}

运行的结果:Java基础中map接口和实现类