黑马程序员技术交流社区
标题:
接口 Map.Entry<K,V>
[打印本页]
作者:
yangchao313
时间:
2013-8-31 21:43
标题:
接口 Map.Entry<K,V>
本帖最后由 yangchao313 于 2013-9-2 11:16 编辑
接口 Map.Entry<K,V>
谁能解释一下 ,这块不是很
懂
作者:
泡沫之夏
时间:
2013-8-31 22:22
这里用到了多太,它就是一个内部内接口,接收它的子类Entry<K,V>,可以查看源码就了解了
作者:
黄文伯
时间:
2013-8-31 22:37
亲,如问题已解决请将分类的“未解决”改为“已解决”。
以后的问题贴也要及时更改分类哦~
作者:
苏联兵
时间:
2013-9-1 00:29
本帖最后由 苏联兵 于 2013-9-1 00:32 编辑
我来试试看看能不能解决你的问题,回答的不好还请批评,首先Map没有继承Collection接口,它提供Key到Value的映射,Map接口提供三种集合的视图,Map的内容可以被当作一组Key集合,一组Value集合,或一组Key-Value映射。
Hashtable继承Map接口,实现一个Key-Value映射的哈希表,任何非空(non-null)的对象都可以作为Key或Value,添加数据使用put(Key,Value)方法,取出数据使用get(Key)方法,这两个基本操作的时间开销为常数。
Hashtable通过initial capacity 和 load factor两个参数调整性能,通常默认的load factor 0.75较好的实现了时间和空间的均衡,增大load factor 可以节省空间,但相应的查找时间将增大,这会影响想get 和 put这样的操作。Hashtable 是同步,它可以存储重载由Object 定义的hashCode()和equals() 方法和对象。Hashtable 的构造方法如下:
Hashtable() //默认构造方法
Hashtable(int size) //创建一个散列表,该散列表具有由size指定的原始大小。
Hashtable(int size, float fillRatio) / /该散列表具有由size指定的原始大小和有fillRatio指定的填充比必须介于0.0和0.1之间。
Hashtable(Map m) //创建一个散列表,该散列表用m中的元素初始化。
下面是一个Hashtable的实例:
import java.util.*;
class HashtableTest_1{
public static void main(String[] args){
Hashtable hh=new Hashtable();
hh.put("a", "name");//姓名
hh.put("b", "age");//年龄
hh.put("c", "address");//地址
hh.put("d", "wage");//工资
Enumeration er = hh.keys//返回此哈希表中的键的枚举。
while(er.hashMoreElement(){
//判断此枚举是否包含更多元素
Object o = er.nextElement();
//返回此枚举的下一个元素,也就是key值
Object v = hh.get(o);
//根据key将Value取出
System.out.println(o+"="+v);
输出
}
}
}
复制代码
由于Hashtable属于散列表,所以并没有按顺序存储。
HashMap
HashMap将“关键字/值”对存储到散列表中,所以HashMap中用于散列和查找的只能是主关键字,其他关键字不能用于散列或查找。HashMap和Hashtable相似,不同之处在于HashMap是非同步的,并且允许null,即null value 和null key。HashMap仍然使用哈希函数来计算关键字的哈希码,并非存储在对应位置上,所以记录之间是无序的,但它的存储和查找都很快,远远超过其他类型的集合,HashMap中的方法很多,这里就不举例了,HashMap和的使用方式基本相同,两者最大的不同是,Hashtable的方法是synchronize的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap就必须提供外同步。Hashtable和HashMap采用的算法集合都一样,所以性能不会有很大的差异。它们都完成了Map接口。说的有点多希望能帮到你。
作者:
辛春鹏
时间:
2013-9-2 08:29
这是一个接口啦。映射项(键-值对),也就是一种关系的映射。当集合Map中的对象使用Map.entrySet 方法时就会返回映射的 collection 视图。返回视图中的元素属于此类。得到这个关系之后,就可以使用此接口中的方法
K getKey()
返回与此项对应的键。
V getValue()
返回与此项对应的值。
从而得到集合中的键和值。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2