public static void main(String[] args) { TreeSet<Double> ts = new TreeSet<>(new Comparator<Double>() { @Override public int compare(Double o1, Double o2) { // TODO Auto-generated method stub int i = 1 ; double d = o2 -o1 ; if(d>0) i = 1 ; if(d<0) i = -1 ; return i; } }) ; ts.add(1.1); ts.add(5.2); ts.add(6.3); ts.add(2.5); ts.add(5.2); ts.add(3.3); for (Double d : ts) { System.out.println(d); } } } 结果:
6.3
5.2
5.2
3.3
2.5
1.1
刚才看错了,,,因为double转换到int 是会丢失数据,,(3.3-2.5=0.8);0.8是double类型换到int时时0;而你给了1;所以3.3会放在2.5的左面,上面是我写的你看看!!
|