62,614
社区成员
发帖
与我相关
我的任务
分享
import java.util.*;
public class csdntest3{
@SuppressWarnings("unchecked")
public static void main(String[] args){
List<Integer> list = new ArrayList<Integer>();
for(int i = 1; i <=5; i++){
list.add(i);
}
Collections.sort(list, new Comparatorsort());
for(int i = 0; i < list.size(); i++){
System.out.println(list.get(i));
}
}
}
class Comparatorsort implements Comparator{
public int compare(Object o1,Object o2)
{
Integer str1=(Integer)o1;
Integer str2=(Integer)o2;
if(str1.compareTo(str2)>0)
return -1;
if(str1.compareTo(str2)<0)
return 1;
return 0;
}
}
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
public class Test {
public static void main(String[] args) {
Map<String, Integer> map = new HashMap<String, Integer>();
map.put("ee", 3);
map.put("b", 1);
map.put("d", 2);
map.put("eee", 3);
map.put("A", 1);
map.put("K", 2);
map.put("ade", 1);
map.put("c", 2);
map.put("aee", 3);
map.put("a", 1);
map.put("faed", 2);
map.put("bdd", 1);
map.put("qec", 2);
map.put("kqe", 2);
map.put("eade", 3);
map.put("Aadf", 1);
map.put("Kqe", 2);
Map<String, Integer> sortMap = new Test().sortByValue(map);
// 输出排序结果
for(Entry<String, Integer> entry : sortMap.entrySet()) {
System.out.printf("%-4s --> %-1s%n", entry.getKey(), entry.getValue());
}
}
public <K, V extends Number> Map<String, V> sortByValue(Map<String, V> map) {
List<Entry<String, V>> list = new ArrayList<Entry<String,V>>();
// 将 Map 中的 Entry 全部添加到 List 中
list.addAll(map.entrySet());
// 进行排序
Collections.sort(list, new Comparator<Entry<String,V>>() {
public int compare(Entry<String, V> o1, Entry<String, V> o2) {
if (o1.getValue().equals(o2.getValue())) {
// 值相同时,将键进行比较(忽略大小写的方式)
return o1.getKey().compareToIgnoreCase(o2.getKey());
} else {
// 值不同时,直接比较值
return (int)(o1.getValue().doubleValue() - o2.getValue().doubleValue());
}
}
});
// 将排序后的结果放回一个 Map 中返回
Map<String, V> sortMap = new LinkedHashMap<String, V>();
for(int i = 0, k = list.size(); i < k; i++) {
Entry<String, V> entry = list.get(i);
sortMap.put(entry.getKey(), entry.getValue());
}
return sortMap;
}
}