`
- 浏览:
31180 次
- 性别:
- 来自:
上海
-
- 遍历HashMap
- HashMap attMap;
- Iterator i = attMap.entrySet().iterator();
- while(i.hasNext()){
- Object o = i.next();
- String key = o.toString();
-
- }
- 当然也可以遍历Map.Entry项,值。方法类似。
-
-
- 也可以
- Object [] obja=attmap.keySet().toArray();
-
- 听我们的支持说遍历hashmap使用entryset快些,因大部分都是用keyset遍历的,也没有去想那么多。今天研究了一下,果然差了很多。
- 见示例,只是简单的hashmap信息。不多说了,大家把这个类在本地运行下,很容易看到结果。
-
- import java.util.HashMap;
- import java.util.Iterator;
- import java.util.Calendar;
-
- public class HashMapTest {
-
- public static void main(String[] args) {
- HashMap hashmap = new HashMap();
- for(int i=0;i<1000;i++){
- hashmap.put(""+i,"hello");
- }
-
- long bs = Calendar.getInstance().getTimeInMillis();
- Iterator iterator = hashmap.keySet().iterator();
-
- while(iterator.hasNext()) {
-
- System.out.println(hashmap.get(iterator.next()));
- }
- System.out.println(Calendar.getInstance().getTimeInMillis() - bs);
- listHashMap();
- }
-
- public static void listHashMap(){
- java.util.HashMap hashmap = new java.util.HashMap();
- for(int i=0;i<1000;i++){
- hashmap.put(""+i,"hello");
- }
- long bs = Calendar.getInstance().getTimeInMillis();
-
- java.util.Iterator it = hashmap.entrySet().iterator();
- while(it.hasNext()){
- java.util.Map.Entry entry = (java.util.Map.Entry)it.next();
-
-
- System.out.println(entry.getValue());
- }
- System.out.println(Calendar.getInstance().getTimeInMillis() - bs);
- }
-
- }
-
- 对于keySet其实是遍历了2次,一次是转为iterator,一次就从hashmap中取出key所对于的value。
-
- 而entryset只是遍历了第一次,他把key和value都放到了entry中,所以就快了。
-
-
- 对于我们做web的,可能不部分都是用vo对象或是form封装信息,所以用到hashmap时,其内存放的都是上面的对象。因此使用entryset遍历性能会有所提高。
-
- hashmap使用很多,比如导入信息时就要用到,因大部分导入的信息要去判断是否有重复的信息,这样就可以利用containsKey来进行处理了,而不用在插入的时候去进行处理。
-
-
-
-
- 第一种:
- Map map = new HashMap();
- Iterator iter = map.entrySet().iterator();
- while (iter.hasNext()) {
- Map.Entry entry = (Map.Entry) iter.next();
- Object key = entry.getKey();
- Object val = entry.getValue();
- }
- 效率高,以后一定要使用此种方式!
- 第二种:
- Map map = new HashMap();
- Iterator iter = map.keySet().iterator();
- while (iter.hasNext()) {
- Object key = iter.next();
- Object val = map.get(key);
- }
- 效率低,以后尽量少使用!
-
- 例:
- HashMap的遍历有两种常用的方法,那就是使用keyset及entryset来进行遍历,但两者的遍历速度是有差别的,下面请看实例:
-
- public class HashMapTest {
- public static void main(String[] args) ...{
- HashMap hashmap = new HashMap();
- for (int i = 0; i < 1000; i ) ...{
- hashmap.put("" i, "thanks");
- }
-
- long bs = Calendar.getInstance().getTimeInMillis();
- Iterator iterator = hashmap.keySet().iterator();
- while (iterator.hasNext()) ...{
- System.out.print(hashmap.get(iterator.next()));
- }
- System.out.println();
- System.out.println(Calendar.getInstance().getTimeInMillis() - bs);
- listHashMap();
- }
-
- public static void listHashMap() ...{
- java.util.HashMap hashmap = new java.util.HashMap();
- for (int i = 0; i < 1000; i ) ...{
- hashmap.put("" i, "thanks");
- }
- long bs = Calendar.getInstance().getTimeInMillis();
- java.util.Iterator it = hashmap.entrySet().iterator();
- while (it.hasNext()) ...{
- java.util.Map.Entry entry = (java.util.Map.Entry) it.next();
-
-
- System.out.print(entry.getValue());
- }
- System.out.println();
- System.out.println(Calendar.getInstance().getTimeInMillis() - bs);
- }
- }
-
- 对于keySet其实是遍历了2次,一次是转为iterator,一次就从hashmap中取出key所对于的value。而entryset只是遍历了第一次,他把key和value都放到了entry中,所以就快了。
-
-
-
- public boolean isOnLine(String email, SocketChannel socket){
- if (sessionMap.containsKey(email)) {
-
- Session session = sessionMap.get(email);
- session.updateAll(SessionStatus.ONLINE, socket, new Date().getTime());
- return true;
- }
-
- Session session = new Session(SessionStatus.ONLINE, socket, new Date().getTime());
- sessionMap.put(email, session);
- return false;
- }
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
Java5种遍历HashMap数据的写法 Java语言中,HashMap是一种常用的数据结构,用于存储键值对形式的数据。然而,在实际开发中,我们经常需要遍历HashMap中的数据以实现某些功能。下面将介绍五种遍历HashMap数据的写法...
HashMap的`keySet()`方法返回所有键的集合,可以通过遍历这个集合来访问每个键,然后使用`get()`方法获取对应的值。这种方式也是比较常见的遍历方法,如下所示: ```java HashMap, String> map = new HashMap(); //...
由于Set接口实现了Iterable接口,我们可以使用for-each循环来遍历KeySet,然后通过map.get(key)获取对应的值。这种方式可以分别获取键和值,但无法同时获取键值对。 2. **方式二:使用Values方法** Values方法返回...
这是一种遍历所有值的方法,但不能遍历键。 ```java for (String v : map.values()) { System.out.println("value = " + v); } ``` 二、HashMap和Hashtable的区别 HashMap和Hashtable都是实现了Map接口的数据结构...
Map集合的特性:一个key值对应一个value值,key值保持着唯一性,而插入的键值对相同key值会发生覆盖原key值对应的value值。 Map集合中一个key对应一个value,但是一个相同的value值可以对应多个key值 下面我们来根据...
使用keySet()方法可以获取HashMap的所有key,然后使用for循环遍历这些key。 2. 使用entrySet()方法 使用entrySet()方法可以获取HashMap的所有entry,然后使用for循环遍历这些entry。 3. 使用Iterator 使用...
通过entrySet()方法,我们可以遍历HashMap中的每个键值对(Entry)。这种方式不仅可以遍历到所有的键,还可以在单次遍历中直接获得与键相对应的值。对于需要同时处理键和值的场景,entrySet()是最为高效的方法。 **...
可以通过2种方法遍历HashMap <br>Map map = new HashMap(); <br>for (Iterator iter = map.entrySet().iterator(); iter.hasNext();) { <br> Map.Entry entry = (Map.Entry) iter.next(); <br> Object ...
使用`Map.keySet()`方法获取HashMap中所有键的`Set`集合,然后通过迭代器遍历这个集合,获取每个键,再通过`map.get(key)`获取对应的值。 ```java for (String key : map.keySet()) { int value = map.get(key)...
总结来说,这段代码展示了如何在HashMap中通过值来查找键,这通常需要遍历整个HashMap的Entry集合,并使用Map.Entry的`getValue()`和`getKey()`方法进行比较。虽然这种方法在大数据量的情况下效率较低,但在某些场景...
### HashMap遍历详解 在Java编程中,`HashMap`是一种常用的数据结构,它实现了`Map`接口,提供了基于哈希表的存储方式,允许我们快速地查找、插入和删除键值对。对于`HashMap`的遍历,是进行数据处理和分析时不可或...
#### 遍历HashMap的方法 根据提供的内容,我们可以了解到遍历`HashMap`主要有两种方式:使用`keySet()`方法和使用`entrySet()`方法。 1. **使用keySet()方法** ```java Map map = new HashMap(); Iterator ...
2、遍历Map.keySet():它是Map中key值的集合,我们可以通过遍历这个集合来 读取Map中的元素; 3、遍历Map.values():它是Map中value的集合,我们可以直接通过这个集合遍历 Map中的值,却不能读取key。
- 遍历HashMap时修改HashMap(添加、删除元素)可能会导致`ConcurrentModificationException`,因为迭代器无法检测到这种并发修改。 - 使用`keySet()`遍历并删除元素是安全的,但效率较低,因为这涉及到两次查找:...
哈希映射(HashMap)是Java编程语言中一个非常重要的数据结构,它在《简单的key value hashmap》中被提及,通常用于存储键值对(key-value pairs)。HashMap是Java集合框架的一部分,它提供了高效的查找、插入和删除...
使用 Iterator 遍历 HashMap 集合,可以获取所有学生的学号和姓名。 七、结论 HashMap 是 Java 语言中最常用的集合类之一,提供了快速查找和存储数据的能力。了解 HashMap 的常用方法和特点,可以更好地应用于实际...
foreach 模式是最简单的遍历方法,适用于不需要修改 HashMap 内元素的遍历,只需要获取元素的键/值的情况。 ```java HashMap, V> myHashMap; for (Map.Entry, V> item : myHashMap.entrySet()) { K key = item.get...
1. 使用迭代器遍历:使用 iterator() 方法取得 HashMap 的迭代器,然后使用 hasNext() 和 next() 方法遍历 HashMap 中的元素。 2. 使用 foreach 遍历:使用 foreach 语句遍历 HashMap 中的元素。 HashMap 的常用...
首先,`keySet()`返回的是Map中所有键的`Set`集合,然后我们可以通过迭代这个键集,每次迭代获取一个键,再通过`Map.get(key)`获取对应的值。以下是示例代码: ```java Map, String> map = new HashMap(); // 填充...
6. **遍历HashMap**:有两种方式遍历HashMap,一是通过`entrySet()`获取键值对的迭代器,二是通过`keySet()`获取键的迭代器再获取对应的值。 ```java for (Map.Entry, String> entry : map.entrySet()) { System....