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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑马的黑马 中级黑马   /  2016-6-24 21:10  /  579 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

为什么主方法中的getSingle下会划红线报错,到底错在哪了,求大神解答
public class Test7 {

        /**
         * 需求:ArrayList去除集合中字符串的重复值(字符串的内容相同)
         * 思路:创建新集合方式
         */
        public static void main(String[] args) {
                ArrayList<String> list = new ArrayList<>();
                list.add("a");
                list.add("a");
                list.add("a");
                list.add("b");
                list.add("b");
                list.add("c");
                list.add("c");
                list.add("c");
                list.add("c");
                list.add("c");
               
                ArrayList<String> newList = getSingle(list);
                System.out.println(newList);
        }
        //contains方法判断是否包含,底层依赖的是equals方法,如果是自定义对象,要重写equals方法
        public static ArrayList<Object> getSingle(ArrayList<Object> list) {
                ArrayList<Object> al = new ArrayList<>();
                Iterator<Object> it = list.iterator();
                while (it.hasNext()) {
                        Object object = (Object) it.next();
                        if (!al.contains(object)) {
                                al.add(object);
                        }
                }
                return al;
        }

评分

参与人数 2黑马币 +27 收起 理由
15514068881 + 7 很给力!
WOLAILE + 20 赞一个!

查看全部评分

4 个回复

正序浏览
lifeiwangyue 发表于 2016-6-24 21:17
类型不一致啊  你传递的繁星里面是String  方法里面的是Object  在编译的时候不一致 不能擦除 ...

哦,这个我搞明白了,还是谢谢你
回复 使用道具 举报
总结的很好 ,很强大
回复 使用道具 举报
lifeiwangyue 发表于 2016-6-24 21:17
类型不一致啊  你传递的繁星里面是String  方法里面的是Object  在编译的时候不一致 不能擦除 ...

Object不是String的父类吗?这样也不行?
回复 使用道具 举报
类型不一致啊  你传递的繁星里面是String  方法里面的是Object  在编译的时候不一致 不能擦除
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马