Java 关于散列、键和值迭代器

Java 关于散列、键和值迭代器,java,hashmap,Java,Hashmap,hashMap中的哈希迭代器、键迭代器和值迭代器是什么?除了普通迭代器之外,它们还有什么功能?假设我有一个哈希映射 Map map=new HashMap();//HashMap key random order. // System.out.println("Amit".hashCode()); map.put("Amit","Java"); map.put("Amit","Javas"); // map.put("mAit"

hashMap中的哈希迭代器、键迭代器和值迭代器是什么?除了普通迭代器之外,它们还有什么功能?假设我有一个哈希映射

Map map=new HashMap();//HashMap key random order.
      //   System.out.println("Amit".hashCode());
         map.put("Amit","Java");
         map.put("Amit","Javas");
        // map.put("mAit","J2EE");
这些新迭代器为我提供了什么样的功能

键集().iterator()迭代键,值().iterator()迭代值,entrySet()迭代项。iterator()迭代键/值项

映射没有任何其他迭代器

这些新迭代器为我提供了什么功能

它们是在Java1.2(1998)中添加的,因此它们并不是那么新

Map.keySet()和Map.values()的结果就是所谓的集合视图(就像您有一个包含两列的SQL表,并为每列创建了一个单独的视图)。使用.keySet()可以获得映射中所有键的iterable集合视图。While.values()使您能够迭代其相应的值

当您操作HashMap以及数组、ArrayList或类似集合时,它们非常方便。这里我列出了一个简单的Java EE示例,该示例从请求中检索Cookie[]数组,然后将Cookie映射存储到HashMap:

Cookie[] cookies = request.getCookies();
HashMap<String,String> map = new HashMap<String,String>();

for(Cookie cookie : cookies)  
{
  map.put(cookie.getKey(), cookie.getValue());
}

//Later if you just wanna check the keys of cookies that are available
Set<String> keys = map.keySet();
Iterator<String> it = keys.iterator();

while(it.hasNext())
{
 String currentElement = it.next();
 System.out.println("key = " + currentElement);

} 
Cookie[]cookies=request.getCookies();
HashMap=newHashMap();
用于(Cookie:cookies)
{
map.put(cookie.getKey(),cookie.getValue());
}
//稍后,如果你只是想检查可用cookies的密钥
Set keys=map.keySet();
Iterator it=keys.Iterator();
while(it.hasNext())
{
字符串currentElement=it.next();
System.out.println(“key=“+currentElement”);
} 

无论如何,这只是HashMap和迭代的一个小例子,重要的是可以调整映射,使其能够像其他集合一样循环使用,这意味着将它们带到程序员使用的更常见、更易于操作的状态。

什么是“hash迭代器”?“普通迭代器”?Java既没有“普通迭代器”也没有“散列迭代器”。我能想到的只有
Map.entrySet().iterator()
Map.keySet().iterator()
,和
Map.values().iterator()
。您使用的是什么版本的Java?我相信一些旧版本的OpenJDK7确实有一个HashMap.HashIterator添加到Peter所说的内容中,这里的示例显示了它们与泛型(JDK1.5+)的结合使用