import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Random; public class Test { public static void main(String[] args) { Map<String, ChartSeries> map = new HashMap<String, ChartSeries>(); // 随机生成40个对象 Random random = new Random(); for (int i = 0; i < 40; i++) { ChartSeries t = new ChartSeries(); t.setY(new Double(random.nextInt(100) + 1)); map.put(String.valueOf(i), t); } List<Map.Entry<String, ChartSeries>> infoIds = new ArrayList<Map.Entry<String, ChartSeries>>(map.entrySet()); Collections.sort(infoIds, new Comparator<Map.Entry<String, ChartSeries>>() { public int compare(Map.Entry<String, ChartSeries> o1, Map.Entry<String, ChartSeries> o2) { //return (o2.getValue() - o1.getValue()); if (o1.getValue().getY() > o2.getValue().getY()) { return -1; } else if (o1.getValue().getY() == o2.getValue().getY()) { return 0; } else return 1; } }); // 以此输出年龄 for (Map.Entry<String, ChartSeries> i : infoIds) { System.out.println(i.getValue().getY()); } } } /** * * 必须实现“Comparator”接口 * * 以age属性进行排序(当然也可以根据多个属性组合排序,此处不再演示) */ class Dog implements Comparator<Dog> { private int age; public Dog() { } public Dog(int age) { this.age = age; } /** * 按年龄升序 */ public int compare(Dog o1, Dog o2) { if (o1.age < o2.age) { return -1; } else if (o1.age == o2.age) { return 0; } else return 1; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } } class ChartSeries implements Comparator<ChartSeries> { private String color; private Double y; public ChartSeries(){ }; public ChartSeries(String colorValue, Double yValue) { this.color = colorValue; this.y = yValue; } public String getColor() { return color; } public void setColor(String color) { this.color = color; } public Double getY() { return y; } public void setY(Double y) { this.y = y; } /** * order by y */ public int compare(ChartSeries o1, ChartSeries o2) { if (o1.y < o2.y) { return -1; } else if (o1.y == o2.y) { return 0; } else return 1; } }
Java Map借助key List的排序
猜你喜欢
转载自tooby.iteye.com/blog/2243637
今日推荐
周排行