黑马程序员技术交流社区
标题:
泛型使用
[打印本页]
作者:
黑马斯巴达
时间:
2013-1-11 23:58
标题:
泛型使用
本帖最后由 谢军 于 2013-1-12 23:24 编辑
public static void main(String[] args)
{
TreeSet<String> ts = new TreeSet<String>(new LenComparator());//<font color="#ff0000">泛型里面什么时候在什么地方用<></font>
ts.add("abcd");
ts.add("cc");
ts.add("cba");
ts.add("aaa");
ts.add("z");
ts.add("hahaha");
Iterator<String> it = ts.iterator();//
复制代码
TreeSet<String> ts = new TreeSet<String>
泛型里面什么时候在什么地方用<>。和下面的比较
Iterator<String> it = ts.iterator();//这个后面的方法为什么不用呢
作者:
惠晖
时间:
2013-1-12 02:16
方法调用当然不用了, ts 代表TreeSet 调用 iterator()这个方法 只有装对象的集合 或者迭代器才用到泛型
作者:
胡勇敏
时间:
2013-1-12 08:36
ts本身就已经是一个TreeSet的实例了,而这个实例在生成的时候已经做过泛型的限定。所以ts调用iterator方法返回的类型就是它生成时限定的类型。所以不必加泛型。
作者:
yuchen208
时间:
2013-1-12 13:48
Iterator<String> java.util.TreeSet.iterator()
如上:ts.iterator()是有泛型<String>
作者:
张云杰
时间:
2013-1-12 16:18
本帖最后由 张云杰 于 2013-1-12 16:23 编辑
迭代, 只是为了循环你这个泛型集合用的, 把你这个值遍历出来.. 而且泛型的好处就是 当你在循环一个集合的时候 只能固定这个类型的值来接收, 其他类型是不能接收的, 比如你泛型里加的是 String, 那么 你也只能加String 类型的值, 用迭代器遍历,而迭代器里加的就是你前面集合里的泛型, 这样才可以遍历出来... 因为泛型加了, 后面的类型都必须一样才行, 然后 返回的都是String 类型的值.. Foreach 也是一样的道理..使用泛型获取的数据的类型就是指定的类型,不用强转
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2