MAPインタフェースを実装したクラスの挙動の差異
戻る
■実行結果(LinkedHashMapをイテレータを使って取り出すと確かに登録順で出力される)
in case of java.util.LinkedHashMap
256 - aaaaaaaaaaaaaaaaaaa
1 - bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
10000 - cccccccccccccccccccccccccccccccccccccccc
in case of java.util.HashMap
10000 - cccccccccccccccccccccccccccccccccccccccc
256 - aaaaaaaaaaaaaaaaaaa
1 - bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
in case of java.util.TreeMap
1 - bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
10000 - cccccccccccccccccccccccccccccccccccccccc
256 - aaaaaaaaaaaaaaaaaaa
::::::::::::::
LinkedHashMapTest.java
::::::::::::::
import java.util.*;
/**
$Id: LinkedHashMapTest.html,v 1.1 2009/06/22 16:11:50 kishi Exp kishi $
*/
public class LinkedHashMapTest {
static public void main( String[] args ) {
Map map1 = new LinkedHashMap();
map1.put( "256", "aaaaaaaaaaaaaaaaaaa" );
map1.put( "1", "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb" );
map1.put( "10000", "cccccccccccccccccccccccccccccccccccccccc" );
dump( map1 );
Map map2 = new HashMap();
map2.put( "256", "aaaaaaaaaaaaaaaaaaa" );
map2.put( "1", "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb" );
map2.put( "10000", "cccccccccccccccccccccccccccccccccccccccc" );
dump( map2 );
Map map3 = new TreeMap();
map3.put( "256", "aaaaaaaaaaaaaaaaaaa" );
map3.put( "1", "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb" );
map3.put( "10000", "cccccccccccccccccccccccccccccccccccccccc" );
dump( map3 );
}
static void dump( Map map ) {
System.out.println();
System.out.println( "in case of " + map.getClass().getName() );
Iterator iterator = map.keySet().iterator();
while ( iterator.hasNext() ) {
String key = ( String ) iterator.next();
String value = ( String ) map.get( key );
System.out.println( key + " - " + value );
}
}
}
戻る