HashMap 学习-2

来源:互联网 发布:网络数据机房维护方案 编辑:程序博客网 时间:2024/06/05 01:14

key可以是任何对象

map存放键值对,根据键找value,键不可以重复



比如:

Map map = new HashMap();

map.put("xdx",new Friend("wzh"));  增加键值对到map里

map.put("dxd",new Friend("hzw"));

Wife w = (Wife)map.get("xdx");  取出值

这个时候w.name的值为wzh


class Wife(){

String name;

public Wife(String name){

this.name=name;

}

}

由此看来 实际上map的key和value都可以是对象 

map将一对对的值存入,通过一个对象找另一个对象


remove(key)实际上是移除了key和value这一对   不是删除 把它从容器里移除

如果是:

Wife w = (Wife) map.get("xdx");

map.remove("xdx");

这里先把 xdx和wzh绑定,同时使wzh指向w

再从容器里删除这个键值对的地址

所以w.name还是可以取到值


containKey  containValue

putAll(Map l) 把map l里面的键值对都添加到我们的map里


Map下有很多子类 一般关注 hashmap 和 hashtable

用法几乎一样 hashmap效率高 线程不安全

hashtable效率低 线程安全

类似于 arrayList和vector类似


比较key,value的时候都要用equals方法


如果相同的键,再用get取值 取到的是后面一个value

map.put("xdx","qqq");

map.put("xdx","www");

map.get("xdx");

此时value为www


map真正意义上是一个Entry对象的数组,里面有一个个Entry对象,这个对象是以键值对的形式存在




0 0
原创粉丝点击