A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张可可 中级黑马   /  2016-6-3 00:00  /  854 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public static void main(String[] args) {
                TreeSet<Double> ts = new TreeSet<Double>(new Comparator<Double>() {

                        @Override
                        public int compare(Double d1, Double d2) {
                                int num = (int)(d2 - d1) ;
                                return num == 0 ? 1 : num;
                        }
                });
                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);
                }
               
               
        }

3 个回复

倒序浏览
程序没问题啊 , 从大到小输出double数 ; 你有什么疑问么 ?  非要说问题的话 ,  就是不知道你有没有导包.
import java.util.Comparator;
import java.util.TreeSet;
回复 使用道具 举报
int num = (int)(d2 - d1) ;要是d2-d1小于1,你强转会有问题。可以用math中的ceil和floor方法,你还开了一个帖子,在哪个帖子中我贴了一个代码,可以看看
回复 使用道具 举报
红豆蓝 发表于 2016-6-3 13:10
int num = (int)(d2 - d1) ;要是d2-d1小于1,你强转会有问题。可以用math中的ceil和floor方法,你还开了一 ...

况且,d2也会小于d1,如果差值为1,也无法检测
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马