1つの インポートjava.net.SocketExceptionが。 2 インポートjava.net.UnknownHostExceptionを発行。 3 インポートはjava.util.ArrayList; 4 インポートjava.util.Collections。 5 輸入はjava.util.Comparator。 6 インポートjava.util.LinkedHashMap。 7 インポートjava.util.Listに。 8 インポートjava.util.Map; 9 10 11 パブリック クラスMapSort { 12 公共 静的 ボイドメイン(文字列[]引数)がスローUnknownHostExceptionが、のSocketExceptionを{ 13 14 リスト<地図<文字列オブジェクト>> listResult = 新規のArrayList <地図<文字列オブジェクト>> (); 15 地図の<string、オブジェクト> MAP1 = 新規のLinkedHashMap <文字列オブジェクト> (); 16 map1.put( "カウント"、2 )。 17 map1.put( "名前"、 "ABC" ); 18 map1.put( "キー"、 "ACV" )。 19 listResult.add(MAP1)。 20 地図の<string、オブジェクト> MAP2 = 新規のLinkedHashMap <文字列オブジェクト> (); 21 map2.put( "カウント"、3 )。 22 map2.put( "名前"、 "BBC"); 23 map2.put( "キー"、 "BCV" ); 24 listResult.add(MAP2)。 25 地図の<string、オブジェクト> MAP3 = 新規のLinkedHashMap <文字列オブジェクト> (); 26 map3.put( "カウント"、1 )。 27 map3.put( "名前"、 "CBC" )。 28 map3.put( "キー"、 "CCV" )。 29 listResult.add(MAP3)。 30 地図の<string、オブジェクト> MAP4 = 新規のLinkedHashMap <文字列オブジェクト> (); 31 map4.put( "カウント"、4 )。 33 map4.put( "キー"、 "CCV" )。 34 listResult.add(MAP4)。 35 36 のSystem.out.println( "排序前:" )。 37 のために(地図の<string、オブジェクト> {:listResultマップ) 38 のSystem.out.println( "カウント" + map.get( "カウント")+」名"+ map.get("名前")+"キー: "+ map.get("キー」)); 39 } 40 41 Collections.sort(listResult、新しいMapComparatorDesc())。 42 43 のSystem.out.println( "降序:" ); 44 用(地図<文字列、 System.out.println( "カウント:" + map.get( "カウント")+ "名: "+ map.get("名前")+"キー: "+ map.get("キー" )); 46 } 47 48 Collections.sort(listResult、新しいMapComparatorAsc())。 49 50 のSystem.out.println( "升序:" ); 51 のために(地図の<string、オブジェクト> {:listResultマップ) 52 のSystem.out.println( "カウント" + map.get( "カウント")+」名"+ map.get("名前")+"キー: "+ map.get("キー」)); コンパレータ<地図<文字列、オブジェクト>> { 56 @Override 57 公共 int型の比較(地図<文字列、オブジェクト> M1、地図<文字列、オブジェクト> 平方メートル){ 58 整数V1 = Integer.valueOf(m1.get( "カウント" ).toString()); 59 整数V2 = Integer.valueOf(m2.get( "カウント" ).toString()); 60 であれば(V2 =!NULL ){ 61 リターンv2.compareTo(V1)。 62 } 63 リターン 0 。 64 } 65 66 } 67 スタティック クラス MapComparatorAsc 実装コンパレータ<地図<文字列オブジェクト>> { 68 @Override 69 公衆 INT比較する(地図の<string、オブジェクト> M1、地図の<string、オブジェクト> M2){ 70 整数V1 = Integer.valueOf(m1.get( "カウント" ).toStringを()); 71 整数V2 = Integer.valueOf(m2.get( "カウント" ).toString()); 72 であれば(V1 =!NULL ){ 73 リターンv1.compareTo(V2)。 74 } 75 リターン 0 。 76 } 77 78 } 79 } 80 81 / * 运行结果 82 排序前: 83 カウント:2名:ABCキー:ACV 84 数:3名:BBCキー:BCV 85 カウント:1名:CBCキー:CCV 86 数:4名: CBCキー:CCV 87 降序: 88 回数:4名:CBCキー:CCV 89 数:3名:BBCキー:BCV 90 数:2名:ABCキー:ACV 91 のカウント:1名:CBCキー:CCV 92 升序: 93 カウント:1名:CBCキー:CCV 94 数:2名:ABCキー:ACV 95 数:3名:BBCキー:BCV 96 数:4名:CBCキー:CCV 97 * /
順序付けられた集合、正しい符号化試験