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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑马斯巴达 高级黑马   /  2013-1-11 23:58  /  1112 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 谢军 于 2013-1-12 23:24 编辑
  1. public static void main(String[] args)
  2.         {
  3.                 TreeSet<String> ts = new TreeSet<String>(new LenComparator());//<font color="#ff0000">泛型里面什么时候在什么地方用<></font>

  4.                 ts.add("abcd");
  5.                 ts.add("cc");
  6.                 ts.add("cba");
  7.                 ts.add("aaa");
  8.                 ts.add("z");
  9.                 ts.add("hahaha");


  10.                 Iterator<String> it = ts.iterator();//
复制代码
TreeSet<String> ts = new TreeSet<String>泛型里面什么时候在什么地方用<>。和下面的比较
Iterator<String> it = ts.iterator();//这个后面的方法为什么不用呢

评分

参与人数 1技术分 +1 收起 理由
高境 + 1 赞一个!

查看全部评分

4 个回复

正序浏览
本帖最后由 张云杰 于 2013-1-12 16:23 编辑

迭代, 只是为了循环你这个泛型集合用的, 把你这个值遍历出来.. 而且泛型的好处就是 当你在循环一个集合的时候 只能固定这个类型的值来接收, 其他类型是不能接收的,  比如你泛型里加的是 String, 那么 你也只能加String 类型的值,  用迭代器遍历,而迭代器里加的就是你前面集合里的泛型, 这样才可以遍历出来...  因为泛型加了, 后面的类型都必须一样才行,   然后 返回的都是String 类型的值.. Foreach 也是一样的道理..使用泛型获取的数据的类型就是指定的类型,不用强转

评分

参与人数 1技术分 +1 收起 理由
李培根 + 1 赞一个!

查看全部评分

回复 使用道具 举报
Iterator<String> java.util.TreeSet.iterator()
如上:ts.iterator()是有泛型<String>

评分

参与人数 1技术分 +1 收起 理由
高境 + 1 赞一个!

查看全部评分

回复 使用道具 举报
ts本身就已经是一个TreeSet的实例了,而这个实例在生成的时候已经做过泛型的限定。所以ts调用iterator方法返回的类型就是它生成时限定的类型。所以不必加泛型。

评分

参与人数 1技术分 +1 收起 理由
高境 + 1 赞一个!

查看全部评分

回复 使用道具 举报
方法调用当然不用了,  ts 代表TreeSet   调用 iterator()这个方法    只有装对象的集合 或者迭代器才用到泛型

评分

参与人数 1技术分 +1 收起 理由
高境 + 1 赞一个!

查看全部评分

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