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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 咕咕猫 中级黑马   /  2013-9-24 13:12  /  1559 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 咕咕猫 于 2013-9-24 14:20 编辑

将自定义对象作为元素存到ArrayList集合中,并去除重复元素.
import java.util.*;
class Demo
{
public static void main(String[]args)
{
  ArrayList al= new ArrayList();//建立一个ArrayList集合
  al.add("java01");//添加与元素
  al.add("java01");
  al.add("java02");
  al.add("java03");
  al.add("java03");
  al.add("java04");
  al=quchu(al);
  sop(al);
}
public static ArrayList quchu(ArrayList al)//去除重复元素功能
{
  ArrayList ap = new ArrayList();
  Iterator it = al.iterator();//迭代器
  while (it.hasNext())
  {
   Object p = it.next();//{:soso_e132:}疑问这里为什么要定义一个Object类的对象,ArrayList的为什么不行呢。帮忙解释下 谢谢啦
   if (!ap.contains(p))//如果ap中没有p那么就将p存进ap中
   {
    ap.add(p);
   }
  }
  return ap;
  
}
public static void sop(Object obj)
{
  System.out.println(obj);
}
}

评分

参与人数 1技术分 +1 收起 理由
黄兴旺 + 1

查看全部评分

5 个回复

倒序浏览
使用迭代器iterator的时候并不知道ArrayList里面装的对象是什么,所以用的是Object,你可以通过使用泛型来避免类型转换,定义集合和迭代器时使用ArrayList<t>,iterator<T>.
回复 使用道具 举报 1 0
使用迭代器iterator的时候并不知道ArrayList里面装的对象是什么,所以用的是Object,你可以通过使用泛型来避免类型转换,定义集合和迭代器时使用ArrayList<t>,iterator<T>.

评分

参与人数 1技术分 +1 收起 理由
黄兴旺 + 1 赞一个!

查看全部评分

回复 使用道具 举报
Object 是所有类的基类,所以无论你的a1给obj的是八种基本数据类型中的那一种,都可以接收,Object接收八种基本数据类型的时候,都会发生类似:int到Integer到Object的装箱过程。

评分

参与人数 1技术分 +1 收起 理由
黄兴旺 + 1

查看全部评分

回复 使用道具 举报
Iteratot用的时候因为它事先不知道你要转换的类型,所以是Object类型。并且这就是泛型的好处,规定它的类型,就可以省略类型转换了。java里好多事先不知道的类型都定义Object类型,程序员可以根据个人需要进行强转。
回复 使用道具 举报
本帖最后由 暮雨 于 2013-9-24 13:49 编辑

很显然你往ArrayList存放的String,对ArrayList进行遍历可有以下几种方法,1.for循环,由于ArrayList实质是以数组形式存放数据的,所以在进行for循环时可以拿到任意的一个值,
  1. for(int i=0;i<arrayList.length;i++){
  2.      String s1 = arrayList.get(i);
  3. }
复制代码
使用Iterator遍历就要涉及到泛型的问题,有两种写法
  1. for(Iterator<String> it = arrayList.iterator;it.hasNext();){
  2.   String s1 = it.next();
  3. }
复制代码
另外一种就是拿出来强转
  1. for(Iterator it = arrayList.iterator;it.hasNext();){
  2.   String s1 =(String) it.next();
  3. }
复制代码
当然也可以像你那样先取出,默认是object类型,然后你再转化为自己想要的类型。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马