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<String,String> map = new HashMap<String,String>(); 其储存的数据类型可以是任意的。
接下来我们简单的介绍一下它添加数据和遍历数据的方法:
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.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详解
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 中外,两者并没有直接的联系。
一般情况下,要输出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中的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);
}