Map虽然实现了Collection接口,但是并不能直接遍历。如果想遍历Map,需要使用entrySet
view plaincopy to clipboardprint?
/**
*Entry: java.util.Entry
*hashmap类型为HashMap
*/
for(Iterator iter=hashmap.entrySet().iterator(); iter.hasNext();){
Entry entry = (Entry)iter.next();
entry.getKey(); //返回与此项对应的键
entry.getValue(); //返回与此项对应的值
}
/**
*Entry: java.util.Entry
*hashmap类型为HashMap
*/
for(Iterator iter=hashmap.entrySet().iterator(); iter.hasNext();){
Entry entry = (Entry)iter.next();
entry.getKey(); //返回与此项对应的键
entry.getValue(); //返回与此项对应的值
}
另外一种方式是使用keySet进行遍历,看别人的文章和程序运行结果来看,似乎要慢一些。因为对于keySet其实是遍历了2次,一次是转为iterator,一次就从hashmap中取出key所对于的value。
而entryset只是遍历了第一次,他把key和value都放到了entry中,所以就快了。
首选应该是上面的方法。
view plaincopy to clipboardprint?
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();
//String value = "";
while(iterator.hasNext()) {
//value = hashmap.get(iterator.next());
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();
//Set set = hashmap.entrySet() ;
java.util.Iterator it = hashmap.entrySet().iterator();
while(it.hasNext()){
java.util.Map.Entry entry = (java.util.Map.Entry)it.next();
// entry.getKey() 返回与此项对应的键
// entry.getValue() 返回与此项对应的值
System.out.println(entry.getValue());
}
System.out.println(Calendar.getInstance().getTimeInMillis() - bs);
}
}
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();
//String value = "";
while(iterator.hasNext()) {
//value = hashmap.get(iterator.next());
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();
//Set set = hashmap.entrySet() ;
java.util.Iterator it = hashmap.entrySet().iterator();
while(it.hasNext()){
java.util.Map.Entry entry = (java.util.Map.Entry)it.next();
// entry.getKey() 返回与此项对应的键
// entry.getValue() 返回与此项对应的值
System.out.println(entry.getValue());
}
System.out.println(Calendar.getInstance().getTimeInMillis() - bs);
}
}
HashSet hs;
Iterator it = hs.iterator();
Object obj = null;
while(it.hasNext())
{
obj = it.next();
}
二.遍历HashSet
Set set = new HashSet();
for(int i=0;i<100;i++)
{
set .add("123");
}
for(Iterator it=set.iterator();it.hasNext();)
{
System.out.println(it.next());
}
三.遍历Hashtable(同步、线程安全的)
Hashtable table = new Hashtable();
table.put(1, "1");
table.put(2, "1");
table.put(3, "1");
//遍历key
Enumeration e = table.keys();
while( e. hasMoreElements() ){
System.out.println( e.nextElement() );
}
//遍历value
e = table.elements();
while( e. hasMoreElements() ){
System.out.println( e.nextElement() );
}
分享到:
相关推荐
HashMap遍历和使用方法详解 HashMap是Java中一种常用的数据结构,用于存储键值对的集合。它实现了Map接口,是基于哈希表结构的,可以快速地存储和检索数据。本文将详细介绍HashMap的遍历和使用方法,并比较HashMap...
5. **HashMap遍历注意事项**: - 遍历HashMap时修改HashMap(添加、删除元素)可能会导致`ConcurrentModificationException`,因为迭代器无法检测到这种并发修改。 - 使用`keySet()`遍历并删除元素是安全的,但...
自己写的例子,关于HashSet遍历和HashMap遍历的. 感谢大家参考
Java HashMap 遍历和删除元素方法小结 Java HashMap 是一种常用的数据结构,用于存储键值对儿,但是在遍历和删除元素时,需要注意一些特殊的情况,否则可能会出现异常或错误。本文将介绍 Java HashMap 遍历和删除...
标题中提到的"FLEX HashMap遍历并取到需要的值",是指在编程中如何使用Java语言的HashMap集合类型进行遍历,并且从中取得符合特定条件的数据值。HashMap是一种基于哈希表的Map接口实现,它允许我们存储键值对,其中...
要解决HashMap遍历删除元素的问题,可以使用Iterator来遍历HashMap,并使用Iterator的remove方法来删除元素。这样可以避免ConcurrentModificationException异常。 小结 在遍历和删除HashMap和List的元素时,需要...
Java5种遍历HashMap数据的写法 Java语言中,HashMap是一种常用的数据结构,用于存储键值对形式的数据。然而,在实际开发中,我们经常需要遍历HashMap中的数据以实现某些功能。下面将介绍五种遍历HashMap数据的写法...
遍历HashMap是常见的操作,本文将介绍六种不同的方法来实现这一功能。 1. **方式一:使用KeySet方法** KeySet方法返回HashMap中所有键的Set视图。由于Set接口实现了Iterable接口,我们可以使用for-each循环来遍历...
HashMap遍历的常用方法主要有三种:迭代器(Iterator)遍历、键集(KeySet)遍历以及 Entry 集(entrySet)遍历。下面将逐一介绍这些方法。 1. 迭代器遍历: HashMap提供了迭代器接口(Iterator),可以通过调用`...
然而,在对HashMap进行操作时,遍历其元素是一个常见的需求,而不同的遍历方法在性能和使用场景上各有优劣。本文将探讨Java HashMap的三种主要遍历方式,阐述它们的优缺点,并提供示例代码。 ### HashMap数据结构...
遍历HashMap有多种方式。第一种是通过entrySet()迭代器,可以同时获取键值对;第二种是通过keySet()迭代器,需要再次通过get()获取值;第三种是使用Java 8引入的forEach()方法,通过Lambda表达式简洁地遍历。其中,...
### hashMap和hashTable的区别 #### 一、简介与基本概念 `HashMap` 和 `HashTable` 都是 Java 集合框架中非常重要的数据结构,它们都实现了 `Map` 接口,用于存储键值对。尽管它们在功能上有很多相似之处,但在...
- HashMap遍历方式及其应用场景 - ArrayList与LinkedList的区别及适用场景 - Java访问修饰符的使用 - final关键字的含义及其应用场景 - Ajax的工作原理及其核心对象 - Spring框架中的事务管理配置方法 - ...
- **HashMap遍历**:通过迭代器遍历HashMap中的键值对。 - **集合长度**:获取集合中元素的数量。 - **集合遍历**:使用迭代器或for-each循环遍历集合中的元素。 - **集合输出**:将集合内容打印到控制台。 - *...
HashMap遍历Node数组,直到找到对应的键值对。如果找到,则更新对应的值,否则将键值对存储到Node数组中。 3. 存储键值对 HashMap将键值对存储到Node数组中。每个Node对象都包含三个字段:hash、key和value。hash...
在Java编程中,哈希遍历(Hash Traversal)通常是指对哈希表或映射数据结构(如HashMap)中的键值对进行访问的过程。哈希表是一种高效的数据存储方式,它通过计算对象的哈希码来快速定位数据,使得查找、插入和删除...
- HashMap遍历顺序与插入顺序可能不同,而Hashtable的顺序是固定的。 6. **抽象类与接口**: - **抽象类**:可以包含抽象方法和非抽象方法,可以有实例变量,可以被继承。 - **接口**:只能包含抽象方法和常量,...
可以通过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 ...
24. HashMap遍历的三种方式。 25. JVM命令的使用。 26. ConcurrentHashmap的锁机制及其性能考量。 27. MySQL存储引擎MyISAM和InnoDB的区别。 28. Memcache与Redis的对比。 29. MySQL的行级锁和性能优化方法。 30. ...