keySet()与entrySet()

来源:互联网 发布:淘宝网自动抢拍器 编辑:程序博客网 时间:2024/06/06 05:18
import java.util.Calendar;import java.util.Date;import java.util.HashMap;import java.util.Iterator;import java.util.Map.Entry;/** * 测试keySet()与entrySet()的迭代时间  * * keySet():迭代后只能通过get()取key. * * entrySet():迭代后可以e.getKey(),e.getValue()取key和value。返回的是Entry接口  * 最后说明下keySet()的速度比entrySet()慢了很多。看来以后要考虑用entrySet()了  */public class HashMapTest {public static void main(String[] args) {HashMap<String, String> kmap = new HashMap<String, String>();HashMap<String, String> emap = new HashMap<String, String>();// 装数据for (int i = 0; i < 1000; i++) {kmap.put("" + i, "YL");}for (int i = 0; i < 1000; i++) {emap.put("" + i, "ZT");}long stimes = System.currentTimeMillis();long ctimes = Calendar.getInstance().getTimeInMillis();long dtimes = new Date().getTime();// 初始时间 这里我用了三种取值方式 最后发现System.currentTimeMillis();是最直接的取值方法System.out.println(stimes + " " + ctimes + "  " + dtimes);Iterator<String> ktor = kmap.keySet().iterator();while (ktor.hasNext()) {System.out.println(ktor.next());}long stimes1 = System.currentTimeMillis();long ctimes1 = Calendar.getInstance().getTimeInMillis();long dtimes1 = new Date().getTime();// 结束世界并且也是entrySet的开始时间System.out.println((stimes1 - stimes) + "   " + (ctimes1 - ctimes)+ "    " + (dtimes1 - dtimes));System.out.println(stimes1 + "    " + ctimes1 + " " + dtimes1);Iterator<Entry<String, String>> itor = emap.entrySet().iterator();while (itor.hasNext()) {Entry<String, String> e = itor.next(); System.out.println(e.getKey());System.out.println(e.getValue());}Iterator myitor = emap.entrySet().iterator();while(myitor.hasNext()){Entry myentry = (Entry)myitor.next();System.out.println(myentry.getKey());System.out.println(myentry.getValue());}long stimes2 = System.currentTimeMillis();long ctimes2 = Calendar.getInstance().getTimeInMillis();long dtimes2 = new Date().getTime();System.out.println(stimes2 + "    " + ctimes2 + " " + dtimes2);System.out.println((stimes2 - stimes1) + "  " + (ctimes2 - ctimes1)+ "   " + (dtimes2 - dtimes1));}}