public static void main(String[] args) {
Map<String, User> map = new HashMap<String, User>();
User usrs1 = new User(2);
User usrs2 = new User(10);
User usrs3 = new User(15);
User usrs4 = new User(7);
map.put("d", usrs1);
map.put("c", usrs2);
map.put("b", usrs3);
map.put("a", usrs4);
List<Map.Entry<String, User>> infoIds = new ArrayList<Map.Entry<String, User>>(
map.entrySet());
// 排序前
for (int i = 0; i < infoIds.size(); i++) {
String id = infoIds.get(i).toString();
System.out.println(id);
}
// 排序
Collections.sort(infoIds, new Comparator<Map.Entry<String, User>>() {
public int compare(Map.Entry<String, User> o1,
Map.Entry<String, User> o2) {
User u1 = (User) o1.getValue();
User u2 = (User) o2.getValue();
long num1 = u1.getUsers();
long num2 = u2.getUsers();
return (int) (num2 - num1);
}
});
// 排序后
// for (int i = 0; i < infoIds.size(); i++) {
// String id = infoIds.get(i).toString();
// System.out.println(id);
// }
// 将HASHMAP中的数据排序-------------------------------------------
for (Iterator iter = infoIds.iterator(); iter.hasNext();) {
Map.Entry entry = (Map.Entry) iter.next();
String key = (String) entry.getKey();
User values = (User) entry.getValue();
System.out.println(key + "," + values.toString());
}
}
public class User {
private long num;
public void setUsers(long num) {
this.num = num;
}
public long getUsers() {
return num;
}
public User(long num) {
super();
this.num = num;
}
@Override
public String toString() {
return "Users [users=" + num + "]";
}
}
下面是按照按value来排序
Map<String, Long> map = new HashMap<String, Long>();
map.put("d", (long) 2);
map.put("c", (long) 4);
map.put("b", (long) 1);
map.put("a", (long) 3);
List<Map.Entry<String, Long>> infoIds = new ArrayList<Map.Entry<String, Long>>(
map.entrySet());
// 排序前
for (int i = 0; i < infoIds.size(); i++) {
String id = infoIds.get(i).toString();
System.out.println(id);
}
// d 2
// c 1
// b 1
// a 3
// 排序
Collections.sort(infoIds, new Comparator<Map.Entry<String, Long>>() {
public int compare(Map.Entry<String, Long> o1,
Map.Entry<String, Long> o2) {
// return (o2.getValue() - o1.getValue());
// return (o1.getKey()).toString().compareTo(o2.getKey());
return (int) (o2.getValue() - o1.getValue());
}
});
// 排序后
// for (int i = 0; i < infoIds.size(); i++) {
// String id = infoIds.get(i).toString();
// System.out.println(id);
// }
// 将HASHMAP中的数据排序-------------------------------------------
for (Iterator iter = infoIds.iterator(); iter.hasNext();) {
Map.Entry entry = (Map.Entry) iter.next();
String key = (String)entry.getKey();
Long values = (Long) entry.getValue();
System.out.println(key+","+values);
}