黑马程序员技术交流社区

标题: 已疯,不知道哪里错了,求解答 [打印本页]

作者: SkyBlack    时间: 2016-6-2 10:07
标题: 已疯,不知道哪里错了,求解答
  1. package com.heima.Test16;

  2. import java.util.ArrayList;
  3. import java.util.Collection;
  4. import java.util.Iterator;

  5. @SuppressWarnings({ "rawtypes", "unchecked" })
  6. public class Test_demo {

  7.         public static void main(String[] args) {
  8.                 ArrayList list = new ArrayList();
  9.                 list.add("a");
  10.                 list.add("a");
  11.                 list.add("a");
  12.                 list.add("b");
  13.                 list.add("b");
  14.                 ArrayList newList = demo1(list);
  15.                 System.out.println(newList);
  16.         }

  17.         public static ArrayList demo1(ArrayList list) {
  18.                 ArrayList newList = new ArrayList();
  19.                 Iterator it = list.iterator();
  20.                 while (it.hasNext()) {
  21.                         String temp = (String)it.next();
  22.                         if (!newList.contains(list)) {
  23.                                 newList.add(temp);
  24.                         }
  25.                 }
  26.                 return newList;
  27.         }
  28. }
复制代码



作者: ljd    时间: 2016-6-2 10:21
if (!newList.contains(temp)) {
      newList.add(temp);
}
这样就可以了
作者: SkyBlack    时间: 2016-6-2 11:38
ljd 发表于 2016-6-2 10:21
if (!newList.contains(temp)) {
      newList.add(temp);
}

谢谢,还想问一下,问什么用it.next()不行呢?
作者: ljd    时间: 2016-6-2 11:44
你在创建集合对象时未使用泛型指定为String类,所以it.next()得到的是Object类型的,必须使用类型强制转换
String temp = (String)it.next();
或者你也可以这样:Object obj = it.next();




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2