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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 我为你着迷 金牌黑马   /  2014-12-27 20:10  /  935 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 我为你着迷 于 2014-12-27 20:12 编辑
  1. import java.util.*;
  2. class ArrayListTest
  3. {
  4.         public static void main(String[] args)
  5.         {
  6.                 ArrayList<String> al =new ArrayList<String>();
  7.                 al.add("java01");
  8.                 al.add("java02");
  9.                 al.add("java01");
  10.                 al.add("java01");
  11.                 al.add("java02");
  12.                 al.add("java01");
  13.                
  14.                 System.out.println(al);
  15.                
  16.                 al=singleElement(al);
  17.                
  18.                 System.out.println(al);                        
  19.                                 
  20.         }
  21.         
  22.         public static ArrayList singleElement(ArrayList al)
  23.         {
  24.                 ArrayList<Object> newAl=new ArrayList<Object>();
  25.                
  26.                 Iterator<String> it=al.iterator();
  27.                 while(it.hasNext())
  28.                 {
  29.                      Object obj=it.next();
  30.                         
  31.                      if(!newAl.contains(obj))
  32.                           newAl.add(obj);
  33.                 }
  34.                 return newAl;
  35.         }
  36. }
复制代码
大家好 就是这个代码编译的时候为什么还是报不安全的操作啊,我感觉都已经
加了泛型了啊  哪位大神帮小弟看下哪里还需要加泛型啊  谢谢了 黑马币尽情
奉上啊

评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1 淡定

查看全部评分

8 个回复

正序浏览
public static ArrayList singleElement(ArrayList al)
参数也要加上泛型
(ArrayList<Object> al)
回复 使用道具 举报
  1. import java.util.*;
  2. class ArrayListTest1
  3. {
  4.         public static void main(String[] args)
  5.         {
  6.                 ArrayList<String> al =new ArrayList<String>();
  7.                 al.add("java01");
  8.                 al.add("java02");
  9.                 al.add("java01");
  10.                 al.add("java01");
  11.                 al.add("java02");
  12.                 al.add("java01");
  13.                
  14.                 System.out.println(al);
  15.                
  16.                 al=singleElement(al);
  17.                
  18.                 System.out.println(al);                        
  19.                                 
  20.         }
  21.         
  22.         public static ArrayList<String> singleElement(ArrayList<String> al)    //这一行注意加泛型
  23.         {
  24.                 ArrayList<String> newAl=new ArrayList<String>();                        //别用 Object 了,因为会出现类型不同的异常
  25.                
  26.                 Iterator<String> it=al.iterator();
  27.                 while(it.hasNext())
  28.                 {
  29.                      String obj=it.next();                                //这也改为String类型
  30.                         
  31.                      if(!newAl.contains(obj))
  32.                           newAl.add(obj);
  33.                 }
  34.                 return newAl;
  35.         }
  36. }
复制代码

评分

参与人数 1黑马币 +20 收起 理由
我为你着迷 + 20

查看全部评分

回复 使用道具 举报
:lol正在学习中、先收藏着
回复 使用道具 举报
方法的返回值啊

评分

参与人数 1黑马币 +20 收起 理由
我为你着迷 + 20 谢谢

查看全部评分

回复 使用道具 举报
常强儿 发表于 2014-12-27 23:28
凡是有Collection的地方都要加入泛型啊

还有哪个地方 我怎么找不出来呢 很郁闷  
回复 使用道具 举报
凡是有Collection的地方都要加入泛型啊
回复 使用道具 举报
不系之舟王 发表于 2014-12-27 20:21
应该是下面去除重复元素方法忘加泛型了 public static ArrayList singleElement(ArrayList al),你可以试试 ...

不行啊 还是出现
D:\java0217\day14>javac ArrayListTest.java
注: ArrayListTest.java使用了未经检查或不安全的操作。
注: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。
回复 使用道具 举报
应该是下面去除重复元素方法忘加泛型了 public static ArrayList singleElement(ArrayList<String> al),你可以试试

评分

参与人数 1黑马币 +10 收起 理由
我为你着迷 + 10 谢谢

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马