001 package cn.chn.chen.dev.mapp; 002 003 import java.util.ArrayList; 004 import java.util.Collections; 005 import java.util.Comparator; 006 import java.util.HashMap; 007 import java.util.Iterator; 008 import java.util.List; 009 import java.util.Map; 010 import java.util.Map.Entry; 011 012 /** 013 * <p> 014 * TestMap类主要用于-Map的基本使用. 015 * </p> 016 * <p> 017 * 创建时间 2011-4-20 - 下午09:08:44 018 * </p> 019 * <blockquote> 020 * <h4>历史修改记录</h4> 021 * <ul> 022 * <li>修改人 修改时间 修改描述 023 * </ul> 024 * </blockquote> 025 * <p> 026 * copyright ×××× 2010-2011, all rights reserved. 027 * </p> 028 * 029 * @author IT山人 030 * @since 1.0 031 * @version 1.0 032 */ 033 public class TestMap { 034 035 /** 036 * <p> 037 * whileMapByEntrySet方法-采用while通过entrySet遍历map集合. 038 * </p> 039 * <p> 040 * 创建人 IT山人 创建时间 2011-4-20 - 下午10:33:39 041 * </p> 042 * <blockquote> 043 * <h4>历史修改记录</h4> 044 * <ul> 045 * <li>修改人 修改时间 修改描述 046 * </ul> 047 * </blockquote> 048 * @param map 049 */ 050 public void whileMapByEntrySet(Map<Integer, String> map) { 051 Iterator<Entry<Integer, String>> iterator = map.entrySet().iterator(); 052 while (iterator.hasNext()) { 053 Map.Entry<Integer, String> entry = iterator.next(); 054 Integer key = entry.getKey(); 055 String value = entry.getValue(); 056 System.out.println("key:" + key + "\tvalue:" + value); 057 } 058 } 059 060 /** 061 * <p> 062 * whileMapByKeySet方法-采用while通过keySet遍历map集合. 063 * </p> 064 * <p> 065 * 创建人 IT山人 创建时间 2011-4-20 - 下午10:34:39 066 * </p> 067 * <blockquote> 068 * <h4>历史修改记录</h4> 069 * <ul> 070 * <li>修改人 修改时间 修改描述 071 * </ul> 072 * </blockquote> 073 * @param map 074 */ 075 public void whileMapByKeySet(Map<Integer, String> map) { 076 Iterator<Integer> iterator = map.keySet().iterator(); 077 while (iterator.hasNext()) { 078 Integer key = iterator.next(); 079 String value = map.get(key); 080 System.out.println("key:" + key + "\tvalue:" + value); 081 } 082 } 083 084 /** 085 * <p> 086 * forMapByKeySet方法-采用for通过keySet遍历map集合. 087 * </p> 088 * <p> 089 * 创建人 IT山人 创建时间 2011-4-20 - 下午10:35:58 090 * </p> 091 * <blockquote> 092 * <h4>历史修改记录</h4> 093 * <ul> 094 * <li>修改人 修改时间 修改描述 095 * </ul> 096 * </blockquote> 097 * @param map 098 */ 099 public void forMapByKeySet(Map<Integer, String> map) { 100 for (Integer key : map.keySet()) { 101 String value = map.get(key); 102 System.out.println("key:" + key + "\tvalue:" + value); 103 } 104 } 105 106 /** 107 * <p> 108 * forMapByWhileSet方法-采用for通过entrySet遍历map集合. 109 * </p> 110 * <p> 111 * 创建人 IT山人 创建时间 2011-4-20 - 下午10:36:24 112 * </p> 113 * <blockquote> 114 * <h4>历史修改记录</h4> 115 * <ul> 116 * <li>修改人 修改时间 修改描述 117 * </ul> 118 * </blockquote> 119 * @param map 120 */ 121 public void forMapByWhileSet(Map<Integer, String> map) { 122 for (Map.Entry<Integer, String> entry : map.entrySet()) { 123 Integer key = entry.getKey(); 124 String value = entry.getValue(); 125 System.out.println("key:" + key + "\tvalue:" + value); 126 } 127 } 128 129 /** 130 * <p> 131 * hashMapAscSortByValue方法-按值升序排列. 132 * </p> 133 * <p> 134 * 创建人 IT山人 创建时间 2011-4-20 - 下午10:36:40 135 * </p> 136 * <blockquote> 137 * <h4>历史修改记录</h4> 138 * <ul> 139 * <li>修改人 修改时间 修改描述 140 * </ul> 141 * </blockquote> 142 * @param map 143 * @return 144 */ 145 public List<Map.Entry<Integer, String>> hashMapAscSortByValue(Map<Integer, String> map) { 146 List<Map.Entry<Integer, String>> mappingList = null; 147 mappingList = new ArrayList<Entry<Integer,String>>(map.entrySet()); 148 Collections.sort(mappingList, new Comparator<Map.Entry<Integer, String>>() { 149 @Override 150 public int compare(Entry<Integer, String> o1, 151 Entry<Integer, String> o2) { 152 return o1.getValue().compareTo(o2.getValue()); 153 } 154 }); 155 return mappingList; 156 } 157 158 /** 159 * <p> 160 * hashMapAscSortByKey方法-按key升序排列. 161 * </p> 162 * <p> 163 * 创建人 IT山人 创建时间 2011-4-20 - 下午10:37:16 164 * </p> 165 * <blockquote> 166 * <h4>历史修改记录</h4> 167 * <ul> 168 * <li>修改人 修改时间 修改描述 169 * </ul> 170 * </blockquote> 171 * @param map 172 * @return 173 */ 174 public List<Map.Entry<Integer, String>> hashMapAscSortByKey(Map<Integer, String> map) { 175 List<Map.Entry<Integer, String>> mappingList = null; 176 mappingList = new ArrayList<Entry<Integer,String>>(map.entrySet()); 177 Collections.sort(mappingList, new Comparator<Map.Entry<Integer, String>>() { 178 @Override 179 public int compare(Entry<Integer, String> o1, 180 Entry<Integer, String> o2) { 181 return o1.getKey().compareTo(o2.getKey()); 182 } 183 }); 184 return mappingList; 185 } 186 187 /** 188 * <p> 189 * main方法-. 190 * </p> 191 * <p> 192 * 创建人 IT山人 创建时间 2011-4-20 - 下午09:08:56 193 * </p> 194 * <blockquote> 195 * <h4>历史修改记录</h4> 196 * <ul> 197 * <li>修改人 修改时间 修改描述 198 * </ul> 199 * </blockquote> 200 * @param args 201 */ 202 public static void main(String[] args) { 203 // TODO Auto-generated method stub 204 TestMap t = new TestMap(); 205 t.hashMapAscSortByValue(NUM_MAP); 206 } 207 }