黑马程序员技术交流社区

标题: 这个程序 有什么问题? [打印本页]

作者: 张可可    时间: 2016-6-3 00:00
标题: 这个程序 有什么问题?
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);
                }
               
               
        }

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

况且,d2也会小于d1,如果差值为1,也无法检测




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2