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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 范龙波 高级黑马   /  2013-5-2 00:04  /  1865 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 范龙波 于 2013-5-3 06:28 编辑

import java.util.*;
class TreeSetDemo
{
        public static void main(String[] args)
        {
                TreeSet<String> it=new TreeSet<String>(new BiJiao()); /*new TreeSet<String>(new BiJiao());这句里的 new BiJiao()具体是什么意思?是把下面的BiJiao方法当对象传进               TreeSet容器中吗? 还有下面注释的部分为什么
视频看的有点不太理解希望给解释一下*/
                it.add("n01");
                it.add("maza002");
                it.add("n1");
                it.add("aa02");
                it.add("aangmiww");
                Iterator<String> t=it.iterator();
                while (t.hasNext())
                {
                        String s=t.next();
                        System.out.println(s);
                }
               
        }
}
class BiJiao implements Comparator<String>
{
        public int compare(String a,String b)
        {
                int num=new Integer(b.length()).compareTo(new Integer(a.length()));
                if(num==0)                           //在这往下三行代码不是很理解希望解释下谢谢
                        return a.compareTo(b);
                return num;
        }
}

评分

参与人数 1技术分 +1 收起 理由
张熙韬 + 1

查看全部评分

4 个回复

倒序浏览
本帖最后由 范龙波 于 2013-5-2 00:09 编辑

希望帮忙解释下谢谢了
回复 使用道具 举报
本帖最后由 吴传淦 于 2013-5-2 00:23 编辑

BiJiao它是比较器。它复写了Comparator的compare方法。
TreeSet<String> it=new TreeSet<String>(new BiJiao());是指使用BiJiao这个比较器来创建TreeSet对象
JDK的构造方法摘要:TreeSet(Collection<? extends E> c) :构造一个包含指定 collection 元素的新 TreeSet,它按照其元素的自然顺序进行。
回复 使用道具 举报
new BiJiao()相当于是new一个比较构造器,当你向treeset里增加数据是,就会和集合里面的以有的数据进行比较,并排序,像你这里应该是按加入字符串的长度进行比较!!
回复 使用道具 举报
TreeSet容器底层数据结构式二叉树。可以对Set集合中的元素进行排序。
第一,如果元素自身具备比较性,比如八种基本数据类型或则字符串, 实现Compareble接口,覆盖compareTo方法,此方式是元素的自然顺序。 基本数据类型或字符串对象均实现了Comparable接口,故同种类型基本数据间具备比较性,即自然顺序。
第二,当元素自身不具备比较性(比如存储人对象时)或者具备的比较性不是我们所需要的比较性时(比如想字符串的长度排序), 此时就需要让集合自身具备自定义的比较性。 那如何让集合自身具备比较性呢?可在集合初始化时,就让集合具备比较方式。即定义一个类, 实现Comparator接口,覆盖compare方法。

       
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马