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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 徐-星星 中级黑马   /  2012-11-5 00:13  /  2043 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 古银平 于 2012-11-5 08:46 编辑

这是毕老师第十四天第11个视频中的例子,下面是我的代码:不知道为什么报了异常: java.lang.ClassCastException

public class Person {
private String name;
private int age;
Person(String name,int age)
{
  this.name=name;
  this.age=age;
}
public String getName()
{
  return name;
}
public int getAge()
{
  return age;
}
public boolean equals(Object obj)
{
  if(!(obj instanceof Person))
   return false;
  Person p=(Person)obj;
  System.out.println(this.name+"....."+p.name);
  return this.name.equals(p.getName())&&this.age==p.age;
}
}


5 个回复

倒序浏览
本帖最后由 朱宏青 于 2012-11-5 00:50 编辑

我测试下 请捎等

测试完毕 这样就可以了
  1. import java.util.*;

  2. public class test3{
  3.         public static void sop(Object obj){
  4.                 System.out.println(obj);
  5.         }
  6.        
  7.         public static void main(String[] args){
  8.                 ArrayList<test2> al = new ArrayList<test2>();
  9.                 al.add(new test2("java01",20));
  10.                 al.add(new test2("java11",20));
  11.                 al.add(new test2("java22",20));
  12.                 al.add(new test2("java02",22));
  13.                 al = SingleElement(al);
  14.                 Iterator<test2> it = al.iterator();
  15.                 while(it.hasNext()){
  16.                         test2 t2 =(test2)it.next();
  17.                         sop(t2.getName()+"...."+t2.getAge());
  18.                 }
  19.         }
  20.        
  21.         public static ArrayList<test2>  SingleElement(ArrayList<test2>  al){
  22.                 ArrayList<test2>  al2 = new ArrayList<test2>();
  23.                 if(!al2.contains(al)){
  24.                         al2.addAll(al);
  25.                 }
  26.                 return al2;
  27.         }
  28. }
复制代码
test2就是你那边的person,注意一下 名字被我改了。
首先我得说 你这个arraylist声明就不对,应该类似ArrayList<Object> al = new ArrayList<Object>();定义他的范形,
最主要的是:我不懂你下面那段在做什么?arraylist里嵌一个arraylist?

我看了下标题,大致知道你需要做什么了:你想把里面重复的元素给除掉,然后把不重复的元素放到另一个集合里,是不是这样?

如果是这样的话,我这里有个苯方法,思路是这样的:把al里的每个元素都拿出来放到另一个集合中,每次放进去的时候进行对比,找到重复的就不要放入了,直接coutinue;

嘛 差不多就这样


评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1 赞一个!

查看全部评分

回复 使用道具 举报
你居然把一个arraylist   add到另一个arraylist里了。怎么能转化成person呢?老师的代码又怎么能和你的一样呢?
回复 使用道具 举报
朱宏青 发表于 2012-11-5 00:27
我测试下 请捎等

测试完毕 这样就可以了test2就是你那边的person,注意一下 名字被我改了。

谢谢你的回答,我受益匪浅!:)
回复 使用道具 举报
陈云展 发表于 2012-11-5 00:33
你居然把一个arraylist   add到另一个arraylist里了。怎么能转化成person呢?老师的代码又怎么能和你的一样 ...

最后发现是不一样的。。发现自己写错了。。。
回复 使用道具 举报
谢谢你们的回答,我的问题已经解决了!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马