`
collegeyuan
  • 浏览: 31180 次
  • 性别: Icon_minigender_2
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

遍历HashMap及获取所有的Key值

 
阅读更多
Java代码  收藏代码
  1. 遍历HashMap  
  2. HashMap attMap;  
  3. Iterator i = attMap.entrySet().iterator();  
  4. while(i.hasNext()){  
  5. Object o = i.next();  
  6. String key = o.toString();  
  7. //这样就可以遍历该HashMap的key值了。  
  8. }  
  9. 当然也可以遍历Map.Entry项,值。方法类似。  
  10.   
  11.   
  12. 也可以  
  13. Object [] obja=attmap.keySet().toArray();  
  14.   
  15. 听我们的支持说遍历hashmap使用entryset快些,因大部分都是用keyset遍历的,也没有去想那么多。今天研究了一下,果然差了很多。  
  16. 见示例,只是简单的hashmap信息。不多说了,大家把这个类在本地运行下,很容易看到结果。  
  17.   
  18. import java.util.HashMap;  
  19. import java.util.Iterator;  
  20. import java.util.Calendar;  
  21.   
  22. public class HashMapTest {  
  23.   
  24. public static void main(String[] args) {  
  25. HashMap hashmap = new HashMap();  
  26. for(int i=0;i<1000;i++){  
  27. hashmap.put(""+i,"hello");  
  28. }  
  29.   
  30. long bs = Calendar.getInstance().getTimeInMillis();  
  31. Iterator iterator = hashmap.keySet().iterator();  
  32. //String value = "";  
  33. while(iterator.hasNext()) {  
  34. //value = hashmap.get(iterator.next());  
  35. System.out.println(hashmap.get(iterator.next()));  
  36. }  
  37. System.out.println(Calendar.getInstance().getTimeInMillis() - bs);  
  38. listHashMap();  
  39. }  
  40.   
  41. public static void listHashMap(){  
  42. java.util.HashMap hashmap = new java.util.HashMap();  
  43. for(int i=0;i<1000;i++){  
  44. hashmap.put(""+i,"hello");  
  45. }  
  46. long bs = Calendar.getInstance().getTimeInMillis();  
  47. //Set set = hashmap.entrySet() ;  
  48. java.util.Iterator it = hashmap.entrySet().iterator();  
  49. while(it.hasNext()){  
  50. java.util.Map.Entry entry = (java.util.Map.Entry)it.next();  
  51. // entry.getKey() 返回与此项对应的键  
  52. // entry.getValue() 返回与此项对应的值  
  53. System.out.println(entry.getValue());  
  54. }  
  55. System.out.println(Calendar.getInstance().getTimeInMillis() - bs);  
  56. }  
  57.   
  58. }  
  59.   
  60. 对于keySet其实是遍历了2次,一次是转为iterator,一次就从hashmap中取出key所对于的value。  
  61.   
  62. 而entryset只是遍历了第一次,他把key和value都放到了entry中,所以就快了。  
  63.   
  64.   
  65. 对于我们做web的,可能不部分都是用vo对象或是form封装信息,所以用到hashmap时,其内存放的都是上面的对象。因此使用entryset遍历性能会有所提高。  
  66.   
  67. hashmap使用很多,比如导入信息时就要用到,因大部分导入的信息要去判断是否有重复的信息,这样就可以利用containsKey来进行处理了,而不用在插入的时候去进行处理。  
  68.   
  69.   
  70.   
  71.   
  72. 第一种:  
  73. Map map = new HashMap();  
  74. Iterator iter = map.entrySet().iterator();  
  75. while (iter.hasNext()) {  
  76.     Map.Entry entry = (Map.Entry) iter.next();  
  77.     Object key = entry.getKey();  
  78.     Object val = entry.getValue();  
  79. }  
  80. 效率高,以后一定要使用此种方式!  
  81. 第二种:  
  82. Map map = new HashMap();  
  83. Iterator iter = map.keySet().iterator();  
  84. while (iter.hasNext()) {  
  85.     Object key = iter.next();  
  86.     Object val = map.get(key);  
  87. }  
  88. 效率低,以后尽量少使用!  
  89.   
  90. 例:  
  91. HashMap的遍历有两种常用的方法,那就是使用keyset及entryset来进行遍历,但两者的遍历速度是有差别的,下面请看实例:  
  92.   
  93. public class HashMapTest {  
  94. public static void main(String[] args) ...{  
  95.   HashMap hashmap = new HashMap();  
  96.   for (int i = 0; i < 1000; i ) ...{  
  97.    hashmap.put("" i, "thanks");  
  98.   }  
  99.   
  100.   long bs = Calendar.getInstance().getTimeInMillis();  
  101.   Iterator iterator = hashmap.keySet().iterator();    
  102.   while (iterator.hasNext()) ...{     
  103.    System.out.print(hashmap.get(iterator.next()));  
  104.   }  
  105.   System.out.println();  
  106.   System.out.println(Calendar.getInstance().getTimeInMillis() - bs);  
  107.   listHashMap();  
  108. }  
  109.   
  110.   public static void listHashMap() ...{  
  111.   java.util.HashMap hashmap = new java.util.HashMap();  
  112.   for (int i = 0; i < 1000; i ) ...{  
  113.    hashmap.put("" i, "thanks");  
  114.   }  
  115.   long bs = Calendar.getInstance().getTimeInMillis();    
  116.   java.util.Iterator it = hashmap.entrySet().iterator();  
  117.   while (it.hasNext()) ...{  
  118.    java.util.Map.Entry entry = (java.util.Map.Entry) it.next();  
  119.    // entry.getKey() 返回与此项对应的键  
  120.    // entry.getValue() 返回与此项对应的值  
  121.    System.out.print(entry.getValue());  
  122.   }  
  123.   System.out.println();  
  124.   System.out.println(Calendar.getInstance().getTimeInMillis() - bs);  
  125. }  
  126. }  
  127.   
  128. 对于keySet其实是遍历了2次,一次是转为iterator,一次就从hashmap中取出key所对于的value。而entryset只是遍历了第一次,他把key和value都放到了entry中,所以就快了。    
  129.   
  130.    
  131.   
  132. public boolean isOnLine(String email, SocketChannel socket){  
  133.         if (sessionMap.containsKey(email)) {  
  134.             // 更新session数据  
  135.             Session session = sessionMap.get(email);  
  136.             session.updateAll(SessionStatus.ONLINE, socket, new Date().getTime());  
  137.             return true;  
  138.         }  
  139.         // 添加该用户的session数据  
  140.         Session session = new Session(SessionStatus.ONLINE, socket, new Date().getTime());  
  141.         sessionMap.put(email, session);  
  142.         return false;  
  143.     }   
分享到:
评论

相关推荐

    Java5种遍历HashMap数据的写法

    Java5种遍历HashMap数据的写法 Java语言中,HashMap是一种常用的数据结构,用于存储键值对形式的数据。然而,在实际开发中,我们经常需要遍历HashMap中的数据以实现某些功能。下面将介绍五种遍历HashMap数据的写法...

    java遍历HashMap简单的方法

    HashMap的`keySet()`方法返回所有键的集合,可以通过遍历这个集合来访问每个键,然后使用`get()`方法获取对应的值。这种方式也是比较常见的遍历方法,如下所示: ```java HashMap, String&gt; map = new HashMap(); //...

    使用多种方式实现遍历HashMap的方法

    由于Set接口实现了Iterable接口,我们可以使用for-each循环来遍历KeySet,然后通过map.get(key)获取对应的值。这种方式可以分别获取键和值,但无法同时获取键值对。 2. **方式二:使用Values方法** Values方法返回...

    基于HashMap遍历和使用方法(详解)

    这是一种遍历所有值的方法,但不能遍历键。 ```java for (String v : map.values()) { System.out.println("value = " + v); } ``` 二、HashMap和Hashtable的区别 HashMap和Hashtable都是实现了Map接口的数据结构...

    HashMap根据value获取key值

    Map集合的特性:一个key值对应一个value值,key值保持着唯一性,而插入的键值对相同key值会发生覆盖原key值对应的value值。 Map集合中一个key对应一个value,但是一个相同的value值可以对应多个key值 下面我们来根据...

    HashMap和List遍历方法及如何遍历删除元素总结

    使用keySet()方法可以获取HashMap的所有key,然后使用for循环遍历这些key。 2. 使用entrySet()方法 使用entrySet()方法可以获取HashMap的所有entry,然后使用for循环遍历这些entry。 3. 使用Iterator 使用...

    Java HashMap的三种遍历方法及优缺点含示例

    通过entrySet()方法,我们可以遍历HashMap中的每个键值对(Entry)。这种方式不仅可以遍历到所有的键,还可以在单次遍历中直接获得与键相对应的值。对于需要同时处理键和值的场景,entrySet()是最为高效的方法。 **...

    怎样遍历一个HashMap?

    可以通过2种方法遍历HashMap &lt;br&gt;Map map = new HashMap(); &lt;br&gt;for (Iterator iter = map.entrySet().iterator(); iter.hasNext();) { &lt;br&gt; Map.Entry entry = (Map.Entry) iter.next(); &lt;br&gt; Object ...

    java哈希遍历_哈希遍历_

    使用`Map.keySet()`方法获取HashMap中所有键的`Set`集合,然后通过迭代器遍历这个集合,获取每个键,再通过`map.get(key)`获取对应的值。 ```java for (String key : map.keySet()) { int value = map.get(key)...

    HashMap通过VALUE反向求KEY的方法

    总结来说,这段代码展示了如何在HashMap中通过值来查找键,这通常需要遍历整个HashMap的Entry集合,并使用Map.Entry的`getValue()`和`getKey()`方法进行比较。虽然这种方法在大数据量的情况下效率较低,但在某些场景...

    HashMap遍历

    ### HashMap遍历详解 在Java编程中,`HashMap`是一种常用的数据结构,它实现了`Map`接口,提供了基于哈希表的存储方式,允许我们快速地查找、插入和删除键值对。对于`HashMap`的遍历,是进行数据处理和分析时不可或...

    如何得到hashmap的索引

    #### 遍历HashMap的方法 根据提供的内容,我们可以了解到遍历`HashMap`主要有两种方式:使用`keySet()`方法和使用`entrySet()`方法。 1. **使用keySet()方法** ```java Map map = new HashMap(); Iterator ...

    java中Map集合的常用遍历方法及HashMap的应用实例

    2、遍历Map.keySet():它是Map中key值的集合,我们可以通过遍历这个集合来 读取Map中的元素; 3、遍历Map.values():它是Map中value的集合,我们可以直接通过这个集合遍历 Map中的值,却不能读取key。

    Java 实例 - HashMap遍历源代码-详细教程.zip

    - 遍历HashMap时修改HashMap(添加、删除元素)可能会导致`ConcurrentModificationException`,因为迭代器无法检测到这种并发修改。 - 使用`keySet()`遍历并删除元素是安全的,但效率较低,因为这涉及到两次查找:...

    简单的key value hashmap

    哈希映射(HashMap)是Java编程语言中一个非常重要的数据结构,它在《简单的key value hashmap》中被提及,通常用于存储键值对(key-value pairs)。HashMap是Java集合框架的一部分,它提供了高效的查找、插入和删除...

    浅谈Java中HashMap类的使用.pdf

    使用 Iterator 遍历 HashMap 集合,可以获取所有学生的学号和姓名。 七、结论 HashMap 是 Java 语言中最常用的集合类之一,提供了快速查找和存储数据的能力。了解 HashMap 的常用方法和特点,可以更好地应用于实际...

    Java HashMap 如何正确遍历并删除元素的方法小结

    foreach 模式是最简单的遍历方法,适用于不需要修改 HashMap 内元素的遍历,只需要获取元素的键/值的情况。 ```java HashMap, V&gt; myHashMap; for (Map.Entry, V&gt; item : myHashMap.entrySet()) { K key = item.get...

    HashMap总结

    1. 使用迭代器遍历:使用 iterator() 方法取得 HashMap 的迭代器,然后使用 hasNext() 和 next() 方法遍历 HashMap 中的元素。 2. 使用 foreach 遍历:使用 foreach 语句遍历 HashMap 中的元素。 HashMap 的常用...

    JAVA遍历Map所有元素.doc

    首先,`keySet()`返回的是Map中所有键的`Set`集合,然后我们可以通过迭代这个键集,每次迭代获取一个键,再通过`Map.get(key)`获取对应的值。以下是示例代码: ```java Map, String&gt; map = new HashMap(); // 填充...

    hashmap使用实例

    6. **遍历HashMap**:有两种方式遍历HashMap,一是通过`entrySet()`获取键值对的迭代器,二是通过`keySet()`获取键的迭代器再获取对应的值。 ```java for (Map.Entry, String&gt; entry : map.entrySet()) { System....

Global site tag (gtag.js) - Google Analytics