序文
Javaでマップを通過する方法はたくさんあります。この記事では、Javaのマップを読む2つの方法と、これら2つの方法の比較を見てみましょう。
1。トラバーサルマップ方法a
マップマップ= new Hashmap(); iterator iter = map.entryset()。iterator(); while(iter.hasnext()){map.entry entry =(map.entry)iter.next();オブジェクトkey = entry.getKey();オブジェクトval = entry.getValue(); } 2。マップ方法b
マップマップ= new Hashmap(); iterator iter = map.keyset()。iterator(); while(iter.hasnext()){object key = iter.next();オブジェクトval = map.get(key); } 3。分析トラバーサル法
方法A:トラバーサルで1回Map.Entryを読み取り、値を直接取得します。
方法B:Keysetに基づいて、最初に繰り返し、次にマップから情報を読み取ります。
4。パフォーマンステスト
java.util.hashmapをインポートします。 java.util.iteratorをインポートします。 java.util.mapをインポートします。 org.junit.beforeclassをインポートします。 Import org.junit.test; public class maploopa {private static map <integer、string> infos = new hashmap <integer、string>(); @beforeclass public static void setup(){for(int i = 0; i <1000000; i ++){infos.put(i、 "Test Information"+i); } system.out.println( "セットアップが完了しました。"); } @test public void testmaploopa(){iterator <map.entry <integer、string >> iterator = infos.entryset()。iterator(); long starttime = system.currenttimemillis(); while(iterator.hasnext()){map.entry <integer、string> entry = iterator.next(); int key = entry.getKey();文字列val = entry.getValue(); } system.out.println( "ソリューションは、10000エントリを備えたループマップを取り込みます:" +(system.currenttimemillis() - starttime) + "milli sencess"); } @test public void testmaploopb(){iterator <integer> iterator = infos.keyset()。iterator(); long starttime = system.currenttimemillis(); while(iterator.hasnext()){int key = iterator.next();文字列val = infos.get(key); } system.out.println( "bソリューションは、10000エントリを備えたループマップを取り込みます:" +(system.currenttimemillis() - starttime) + "milli seconds"); }}テスト結果:
1000,000のデータがマップに保存され、このデータセットで通過していることがわかります。パフォーマンスの違いは、効率の違いのほぼ1倍です。
5。概要
さて、上記はこの記事に関するすべてです。 CARメソッドAの効率が一般的に高いことがわかります。一般的に、方法Aを使用することをお勧めします。この記事の内容が、すべての研究や仕事に役立つことを願っています。