关于HashTable的遍历方法解析
要遍历一个Hashtable,api中提供了如下几个方法可供我们遍历:
|
keys() - returns an Enumeration of the keys of this Hashtable keySet() - returns a Set of the keys entrySet() - returns a Set of the mappings elements() - returns an Enumeration of the values of this Hashtable |
|
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.Map.Entry;
public class HashtableTest
{ public static void main(String[]
args) { long start
= 0; long end
= 0; Hashtable<String, String> table = new Hashtable<String,
String>(); for( int i
= 0; i < 1000000; i++) { table.put( "key:" +
i, "value:" + i); }
//1、使用keys()
start = System. currentTimeMillis();
Enumeration<String> en1 = table.keys();
while(en1.hasMoreElements())
{ en1.nextElement();
}
end = System. currentTimeMillis();
System. out.println( "Enumeration
keys costs " + (end - start) + " milliseconds" ); //2、使用elements()
start = System. currentTimeMillis();
Enumeration<String> en2 = table.elements();
while(en2.hasMoreElements())
{ en2.nextElement();
}
end = System. currentTimeMillis();
System. out.println( "Enumeration
elements costs " + (end - start) + " milliseconds" ); //3、使用keySet()
start = System. currentTimeMillis();
Iterator<String> it1 = table.keySet().iterator();
while(it1.hasNext())
{ it1.next();
}
end = System. currentTimeMillis();
System. out.println( "Iterator
keySet costs " + (end - start) + " milliseconds" ); //4、使用entrySet()
start = System. currentTimeMillis();
Iterator<Entry<String, String>> it2 = table.entrySet().iterator();
while(it2.hasNext())
{ it2.next();
}
end = System. currentTimeMillis();
System. out.println( "Iterator
entrySet costs " + (end - start) + " milliseconds" ); }
}
|
|
Enumeration keys costs 16 milliseconds
Enumeration elements costs 15 milliseconds
Iterator keySet costs 17 milliseconds
Iterator entrySet costs 16 milliseconds
|
关于HashTable的遍历方法解析的更多相关文章
- Hashtable类中的四种遍历方法对比
要遍历一个Hashtable,api中提供了如下几个方法可供我们遍历: keys() - returns an Enumeration of the keys of this Hashtable ke ...
- Python的方法解析顺序(MRO)[转]
本文转载自: http://hanjianwei.com/2013/07/25/python-mro/ 对于支持继承的编程语言来说,其方法(属性)可能定义在当前类,也可能来自于基类,所以在方法调用时就 ...
- sqlalchemy mark-deleted 和 python 多继承下的方法解析顺序 MRO
sqlalchemy mark-deleted 和 python 多继承下的方法解析顺序 MRO 今天在弄一个 sqlalchemy 的数据库基类的时候,遇到了跟多继承相关的一个小问题,因此顺便看了一 ...
- Hashtable 数据遍历的几种方式
Hashtable 在集合中称为键值对,它的每一个元素的类型是 DictionaryEntry,由于Hashtable对象的键和值都是Object类型,决定了它可以放任何类型的数据, 下面我就把Has ...
- Method Resolution Order – Python类的方法解析顺序
在支持多重继承的编程语言中,查找方法具体来自那个类时的基类搜索顺序通常被称为方法解析顺序(Method Resolution Order),简称MRO.(Python中查找其它属性也遵循同一规则.)对 ...
- ES6 数组遍历方法的实战用法总结(forEach,every,some,map,filter,reduce,reduceRight,indexOf,lastIndexOf)
目录 forEach every some map filter reduce && reduceRight indexOf lastIndexOf 前言 ES6原生语法中提供了非常多 ...
- List,Set,Map集合的遍历方法
List的三种实现:ArrayList(数组) LinkedList(链表) Vector(线程安全) List集合遍历方法: List<String> list = new Arra ...
- JS数组与对象的遍历方法大全
本文简单解析各种数组和对象属性的遍历方法: 原生for循环.for-in及forEach ES6 for-of方法遍历类数组集合 Object.key()返回键名的集合 jQuery的$.each() ...
- python 方法解析顺序 mro
一.概要: mor(Method Resolution Order),即方法解析顺序,是python中用于处理二义性问题的算法 二义性: 1.两个基类,A和B都定义了f()方法,c继承A和B那么C调用 ...
随机推荐
- 1_UILabel
// // ViewController.swift // 1_UILabel // // Created by Larry on 2016/12/7. // Copyright © 2016年 nf ...
- Android之HttpURLConnection
1.HttpURLConnection连接URL1)创建一个URL对象 URL url = new URL(); 2)利用HttpURLConnection对象从网络中获取网页数据 HttpURLCo ...
- 给div设置background-color: rgba(0, 0, 0, 0.2)属性,并加了css3动画--opacity动画淡出动画,之后div子元素的字体会抖一下
问题:给div设置background-color: rgba(0, 0, 0, 0.2)属性,并加了css3动画--opacity动画淡出动画,之后div子元素的字体会抖一下: 解决:animati ...
- final阶段140字评论1
1.约跑app 此次演讲增加了摄像头演示的功能,所以界面可以看得更清楚,演示的比上次完整,流畅,约跑这个项目感觉对于我们颇有使用价值,大家现在都热爱跑 ...
- hadoop-mongo map/reduce java
官方 http://docs.mongodb.org/ecosystem/tutorial/getting-started-with-hadoop/ mongo-haoop项目地址 https://g ...
- httpServletRequest对象、filter、servlet、servlet容器、catalina、tomcat、以及web容器之间的关系
学习servlet的时候经常感到疑惑 HttpServletRequest是服务器创建的?还是servlet容器创建的? 过滤器是服务器创建的?还是servlet容器创建的? serlet容器和tom ...
- Logstash 安装与配置
一.Logstash 描述 简单而又强大的数据抽取与处理工具,相比于flums一整本书的描述强大而又好用. 还记得我13年用python写了一个数据抽取.校验工具,设计思路也同样是拆解处理过程模板,然 ...
- Excel2016右键新建工作表,打开时提示“因为文件格式或文件扩展名无效。请确定文件未损坏,并且文件扩展名与文件的格式匹配。”的解决办法
上午新建excel工作表时,发现新建完之后居然打不开 提示: 尼玛这坑爹的,难道我的Excel坏了?? 排查问题之后发现 只有新建“Microsoft Excel 工作表”时会出现这种问题,新建“Wo ...
- MVC的自定义动作过滤器(一)
感谢好朋友wolfy在园子里的很多有价值的文章,方便了很多朋友,向榜样学习,开始自己的总结之旅:) 遇到问题: 1.http://q.cnblogs.com/q/67382/#a_150210 //添 ...
- Step by Step 配置使用HTTPS的ASP.NET Web应用[转载]
原创地址:http://www.cnblogs.com/jfzhu/p/4064654.html 转载请注明出处 有关HTTPS.SSL以及SSL证书的工作原理,参见 <HTTPS那些事(一)H ...