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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

表示已经蒙蔽了,求大神帮忙解答,答得好我可以回赠黑马币   在线等,着急写作业呢

7 个回复

倒序浏览
TreeSet可以保证元素的唯一,同时可以对元素进行排序,排序依赖类实现Comparable接口,并在类中重写compareTo方法,或者对集合传入一个比较器:Comparator,重写compare方法,通常推荐第二种,保证元素唯一的原理和HashSet一致,调用hashcode和equals方法
不知道有没有说清楚...一会给你上代码看一下
回复 使用道具 举报
单曲循环1992 发表于 2016-4-29 20:11
TreeSet可以保证元素的唯一,同时可以对元素进行排序,排序依赖类实现Comparable接口,并在类中重写compareTo ...

能不能举个例子呢
回复 使用道具 举报
举例说明:public static void main(String[] args) {
                TreeSet<String> ts = new TreeSet<>();
                ts.add("a");
                ts.add("c");
                ts.add("t");
                ts.add("b");
                ts.add("e");
                ts.add("o");
                ts.add("f");
               
                System.out.println(ts);                                //[a, b, c, e, f, o, t],自动排序,因为String中实现了Comparable接口,按字典排序
               
                for (String string : ts) {                        //增强for遍历
                        System.out.print(string + " ");
                }
                System.out.println();
                TreeSet<Student> ts2 = new TreeSet<>(new Comparator<Student>() {                        //传入比较器comparator
                        @Override
                        public int compare(Student s1, Student s2) {
                                int num = s1.getAge() - s2.getAge();
                                return num == 0? s1.getName().compareTo(s2.getName()) : num;
                        }
                });
                ts2.add(new Student("张三", 23));
                ts2.add(new Student("周期", 24));
                ts2.add(new Student("王武", 25));
                ts2.add(new Student("赵六", 26));
                ts2.add(new Student("李四", 24));
               
                System.out.println(ts2);
               
                Iterator<Student> it = ts2.iterator();                        //迭代器遍历
                while (it.hasNext()) {
                        System.out.println(it.next());
                }
               
                TreeSet<Student> ts3 = new TreeSet<>();                        //Student类实现了comparable接口,按照定义好的compareTo方法排序
                ts3.add(new Student("张三", 23));
                ts3.add(new Student("周期", 24));
                ts3.add(new Student("王武", 25));
                ts3.add(new Student("赵六", 26));
                ts3.add(new Student("李四", 24));
               
                System.out.println(ts3);
                for (Student student : ts3) {                                //增强for遍历
                        System.out.println(student);
                }
        }
}


不好意思,刚有事,耽误了会....

评分

参与人数 1黑马币 +5 收起 理由
薄荷糖i + 5 很给力!

查看全部评分

回复 使用道具 举报 1 0
单曲循环1992 发表于 2016-4-29 20:16
举例说明:public static void main(String[] args) {
                TreeSet ts = new TreeSet();
                ts.add("a");

我去  大神好样的 我去试试  好了黑马币一定奉上
回复 使用道具 举报
楼上回答的很好了
回复 使用道具 举报
谢谢分享
回复 使用道具 举报
回答的很详细,赞一个!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马