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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王晓东 初级黑马   /  2012-6-5 11:14  /  1506 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. Set<String> set = new HashSet<String>();
  2. set.add("Tom");
  3. Set<String> tree = new TreeSet<String>(set);
复制代码
java中,第三行中,最后 new TreeSet<String>(set);为什么可加(set) 这是什么写法,怎么用呀?

3 个回复

倒序浏览
这种情况,最好看下API或者找一下源码。

TreeSet()  
  构造一个新的空 set,该 set 根据其元素的自然顺序进行排序。  
TreeSet(Collection<? extends E> c)  
  构造一个包含指定 collection 元素的新 TreeSet,它按照其元素的自然顺序进行排序。  
TreeSet(Comparator<? super E> comparator)  
  构造一个新的空 TreeSet,它根据指定比较器进行排序。  
TreeSet(SortedSet<E> s)  
  构造一个与指定有序 set 具有相同映射关系和相同排序的新 TreeSet。  

帖子中的是四个构造函数中的一个。

评分

参与人数 1技术分 +1 收起 理由
袁錦泰 + 1

查看全部评分

回复 使用道具 举报
要构造方法中:TreeSet(Collection<? extends E> c)    这里指明可以传递一个Collection对象,而Set是Collection的子类。所以也可以传递进去。
回复 使用道具 举报
API看下构造方法就行啦~
TreeSet()有4个构造方法:
1、TreeSet()  
2、TreeSet(Collection<? extends E> c)  
3、TreeSet(Comparator<? super E> comparator)  
4、TreeSet(SortedSet<E> s)  

楼主这里是用的第四个构造函数哈~功能是:  构造一个与指定有序 set 具有相同映射关系和相同排序的新 TreeSet。  

贴出来第四个构造方法的源码~这样看就更清楚啦:
public TreeSet(Collection<? extends E> c) {
        this();
        addAll(c);
    }

Set 是Collection的子类,所以当然可以加咯

评分

参与人数 1技术分 +1 收起 理由
袁錦泰 + 1

查看全部评分

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