黑马程序员技术交流社区
标题:
集合的问题
[打印本页]
作者:
黑马的黑马
时间:
2016-6-24 21:10
标题:
集合的问题
为什么主方法中的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;
}
作者:
lifeiwangyue
时间:
2016-6-24 21:17
类型不一致啊 你传递的繁星里面是String 方法里面的是Object 在编译的时候不一致 不能擦除
作者:
黑马的黑马
时间:
2016-6-24 21:23
lifeiwangyue 发表于 2016-6-24 21:17
类型不一致啊 你传递的繁星里面是String 方法里面的是Object 在编译的时候不一致 不能擦除 ...
Object不是String的父类吗?这样也不行?
作者:
火影木叶
时间:
2016-6-24 22:45
总结的很好 ,很强大
作者:
黑马的黑马
时间:
2016-6-25 21:40
lifeiwangyue 发表于 2016-6-24 21:17
类型不一致啊 你传递的繁星里面是String 方法里面的是Object 在编译的时候不一致 不能擦除 ...
哦,这个我搞明白了,还是谢谢你
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2