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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 焦亚星 中级黑马   /  2013-3-28 00:03  /  2028 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 焦亚星 于 2013-3-28 23:19 编辑

以下代码将list中元素去重:
  1. public class Exercise1 {

  2.         public static void main(String[] args) {
  3.                 List<String> list = new ArrayList<>();
  4.                 list.add("a");
  5.                 list.add("b");
  6.                 list.add("b");
  7.                 list.add("c");
  8.                 list.add("c");
  9.                 list.add("c");
  10.                
  11.                 clearRepeat2(list);
  12.                
  13.                 System.out.println(list);        // a, b, c
  14.         }
  15.         
  16.         private static <T> void clearRepeat1(List<T> list) {
  17.                 Set<T> set = new LinkedHashSet<>();                // 创建一个Set
  18.                 set.addAll(list);                                                // 把List中的所有元素装入Set, 去掉重复元素
  19.                 list.clear();                                                        // 清空List中所有元素
  20.                 list.addAll(set);                                                // 把Set中的元素装入List
  21.         }
复制代码
以上代码中,private static <T> void clearRepeat1(List<T> list) 中static 后面的<T>有什么作用,什么情况下不需要这个<T>

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

6 个回复

倒序浏览
举个例子来说你的钱包里你规定只装钱    那么你去出来的想也不想就是钱,管他是¥还是$不用转换的-->都是钱(确定里面是什么)不用泛型的话 就不规定放什么    那么你取出来的东西就不一定是钱,这样你就要转换了,那要是石头的话你要转换成钱就错了(不确定里面到底是什么)

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
      这个T就是你存入List中的类型  比如说  List<String>  那么你的List中放的就String类型;
      若在类定义处声明的泛型,则用来指定这个类用来处理的对象类型,这个类中定义的所有方法,只要使用了类定义处声明的泛型参数,则都必须使用同一个对象,否则,编译就会出现错误 。
      如果仅仅是在方法声明处定义泛型,则表示这个方法的参数或返回值使用什么类型的数据。不再需要强制转型;
      泛型的好处是在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的,提高代码的重用率。

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
请及时追问,或将帖子分类改成【已解决】哦~
回复 使用道具 举报
这个方法没有返回值,为什么还要加个<T>啊
回复 使用道具 举报
参数中List<T> list已经限定了T,前面再加个T又是什么意思
回复 使用道具 举报
焦亚星 发表于 2013-3-28 00:40
这个方法没有返回值,为什么还要加个啊

“追问” 是点击特定回复楼层下面那个“回复”,不是回复自己的帖子哦~  现在这样,别人不进来这个帖子是看不到你的追问的~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马