中易网

JAVA问题:Map.Entry的一般用处是什么?

答案:5  悬赏:40  
解决时间 2021-02-28 05:11
JAVA问题:Map.Entry的一般用处是什么?
最佳答案
用途:

1. Map map = new HashMap();
Irerator iterator = map.entrySet().iterator();
while(iterator.hasNext()) {
Map.Entry entry = iterator.next();
Object key = entry.getKey();
}
2.Map map = new HashMap();
Set keySet= map.keySet();
Irerator iterator = keySet.iterator;
while(iterator.hasNext()) {
Object key = iterator.next();
Object value = map.get(key);
}
Map.Entry是Map声明的一个内部接口,此接口为泛型,定义为Entry。它表示Map中的一个实体(一个key-value对)。接口中有getKey(),getValue方法。

扩展资料:
Map储存数据的方式,map储存数据的形式是一个key和一个value对应,即Map map = new HashMap(); 其储存的数据类型可以是任意的。
接下来我们简单的介绍一下它添加数据和遍历数据的方法:

map.put("key1", "value1");
map.put("key2", "value2");
map.put("key3", "value3");

普遍使用,二次取值

System.out.println("通过Map.keySet遍历key和value:");
for (String key : map.keySet()) {  //通过foreach方法来遍历
System.out.println("key= "+ key + " and value= " + map.get(key));
}
参考资料:java基础_百度百科
全部回答

Map是java中的接口,Map.Entry是Map的一个内部接口。
Map提供了一些常用方法,如keySet()、entrySet()等方法。
keySet()方法返回值是Map中key值的集合;entrySet()的返回值也是返回一个Set集合,此集合的类型为Map.Entry。
Map.Entry是Map声明的一个内部接口,此接口为泛型,定义为Entry。它表示Map中的一个实体(一个key-value对)。接口中有getKey(),getValue方法。
例子代码如下:
扩展资料:

java.util 中的集合类包含 Java 中某些最常用的类,最常用的集合类是 List 和 Map。
List 的具体实现包括 ArrayList 和 Vector,它们是可变大小的列表,比较适合构建、存储和操作任何类型对象的元素列表。 List 适用于按数值索引访问元素的情形。
Map 提供了一个更通用的元素存储方法。 Map 集合类用于存储元素对(称作“键”和“值”),其中每个键映射到一个值。 从概念上而言,您可以将 List 看作是具有数值键的 Map。 而实际上,除了 List 和 Map 都在定义 java.util 中外,两者并没有直接的联系。
你查查API吧
public static interface Map.Entry
映射项(键-值对)。Map.entrySet 方法返回映射的 collection 视图,其中的元素属于此类。获得映射项引用的唯一 方法是通过此 collection 视图的迭代器来实现。这些 Map.Entry 对象仅 在迭代期间有效;更确切地讲,如果在迭代器返回项之后修改了底层映射,则某些映射项的行为是不确定的,除了通过 setValue 在映射项上执行操作之外。
是为了输出的方便
一般情况下,要输出Map中的key 和 value 是先得到key的集合,然后再迭代(循环)由每个key得到每个value
而Entry可以一次性获得这两个值,找个我做过的例子
--------------------------------------------------------------------------
Set set = map.keySet(); //keySet()
for(Iterator iter = set.iterator();iter.hasNext();)
{
String key = (String)iter.next(); //先获得键key
Integer value = (Integer)map.get(key); //再由键获得value

System.out.println(key + "=" + value);
}
--------------------------------------------------------------------------
Set set = map.entrySet(); //entrySet()
for(Iterator iter = set.iterator();iter.hasNext();)
{
Map.Entry entry = (Map.Entry)iter.next();
String key = (String)entry.getKey(); //一次性获得键和值 key和value
String value = (String)entry.getValue();

System.out.println(key + ": " + value);
}

Map.Entry的定义。Map的entrySet()方法返回一个实现Map.Entry接口的对象集合。集合中每个对象都是底层Map中一个特定的键/值对。通过这个集合的迭代器,获得每一个条目(唯一获取方式)的键或值并对值进行更改。Map.Entry中的常用方法如下所示:
(1) Object getKey(): 返回条目的关键字 
(2) Object getValue(): 返回条目的值
(3) Object setValue(Object value): 将相关映像中的值改为value,并且返回旧值

2.Map.Entry的作用。Map.Entry是为了更方便的输出map键值对。一般情况下,要输出Map中的key 和 value  是先得到key的集合keySet(),然后再迭代(循环)由每个key得到每个value。values()方法是获取集合中的所有值,不包含键,没有对应关系。而Entry可以一次性获得这两个值。
3.常用的遍历Map的方法(见下列代码图)



4.Map.entrySet迭代器会生成EntryIterator,其返回的实例是一个包含key/value键值对的对象。而keySet中迭代器返回的只是key对象,还需要到map中二次取值。故entrySet要比keySet快一倍左右。
拓展资料:
Map集合没有继承Collection接口,其提供的是key到value的映射,Map中不能包含相同的key值,每个key只能影射一个相同的value.key值还决定了存储对象在映射中的存储位置.
2.但不是key对象本身决定的,而是通过散列技术进行处理,可产生一个散列码的整数值,散列码通常用作一个偏移量,该偏移量对应分配给映射的内存区域的起始位置,从而确定存储对象在映射中的存储位置.Map集合包括Map接口以及Map接口所实现的类.
3.Map集合没有继承Collection接口,其提供的是key到value的映射,Map中不能包含相同的key值,每个key只能影射一个相同的value.key值还决定了存储对象在映射中的存储位置.
4.但不是key对象本身决定的,而是通过散列技术进行处理,可产生一个散列码的整数值,散列码通常用作一个偏移量,该偏移量对应分配给映射的内存区域的起始位置,从而确定存储对象在映射中的存储位置.Map集合包括Map接口以及Map接口所实现的类.


参考资料:Map.Entry详解

我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
偶像书店地址在哪,我要去那里办事
你心目中哪些省份或城市最爱饮酒?
一个正方体的棱长是3cm它的表面积是多少?体
中心街怎么去啊,有知道地址的么
竹子如何进口中国,海关等需要哪些手续呢?
彬饭馆这个地址在什么地方,我要处理点事
请以"my friend's family"为题写一篇五十
0.22u的滤膜会把蛋白质滤除吗
如何用ce修改泰拉瑞亚武器攻击力
大学毕业后户口迁回原籍
迎秋里小区北院地址在哪,我要去那里办事
想要一个和解雨臣有关的网名【要唯美一点的】
今天去面试,HR问了一个问题?问未来3―5年内
请问在《马说》中,“马之千里者”的“之”是
我是2011届山东畜牧兽医职业学院的毕业生,我
推荐资讯
40岁,女,在家没有工作。有一个初中的孩子,
安徽合肥有个朋友叫我过去做物流,问一下会不
求适合高二学生看的英文文章
吹空调口干怎么办?
线下支付是什么意思?
巫师3 血与酒地下洞穴怎么出来
什么时候用动量守恒?什么时候用机械能守恒?
福田站地铁站30A口我想知道这个在什么地方
结过婚能当伴娘吗
康辉桌球怎么去啊,有知道地址的么
急!!求100-200中素数之和及素数的个数,输
纸面石膏板吊平顶后,没有预埋水晶吊顶的位置
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?