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 );
        }

    }
}

戻る


inserted by FC2 system