黑马程序员技术交流社区
标题: 在ArrayList练习中不明白的问题 [打印本页]
作者: 一帆风顺 时间: 2012-12-11 09:02
标题: 在ArrayList练习中不明白的问题
本帖最后由 王博 于 2012-12-11 15:24 编辑
import java.util.*;
class Person
{
private String name;
private int age;
Person(String name,int age)
{
this.name=name;
this.age=age;
}
public boolean equals(Object obj)
{
if (!(obj instanceof Person)) //这里是什么意思啊??毕老师讲的时候没有听懂啊??
{ //能否详细讲解一下
return false;
}
Person p=(Person)obj;
return this.name.equals(p.name)&&this.age==p.age;
}
public String getName()
{
return name;
}
public int getAge()
{
return age;
}
}
class ArrayListTest2
{
public static void main(String[] args)
{
ArrayList al = new ArrayList();
al.add(new Person("List01",30));
al.add(new Person("List02",32));
al.add(new Person("List03",33));
al.add(new Person("List02",32));
al=singleElement(al);
Iterator it = al.iterator();
while (it.hasNext())
{
Person p=(Person)it.next();
System.out.println(p.getName()+"..."+p.getAge());
}
}
public static ArrayList singleElement(ArrayList al)
{
ArrayList newAl = new ArrayList();
Iterator it = al.iterator();
while (it.hasNext())
{
Object obj=it.next();
if (!newAl.contains(obj))
{
newAl.add(obj);
}
}
return newAl;
}
}
作者: 郑传庆 时间: 2012-12-11 09:24
public boolean equals(Object obj)
{
/*
*这里是判断obj 这个对象的类型是否是Person该类类型,如果是就运行该语句体。这里的条件是当obj 这个对象属于Person时,为真之后在取反。其实我个人觉得
* 只要理解我这句话的意思就可以了。至于你想要更详细的答案,可以到百度上百度instanceof就会有很多先辈门的讲解的
*/
if (!(obj instanceof Person))
{ //能否详细讲解一下
return false;
}
Person p=(Person)obj;
return this.name.equals(p.name)&&this.age==p.age;
}
作者: 李培根 时间: 2012-12-11 09:55
老师之前的视频里面提到过的,就是类型判断。
boolean obj instanceof Person 返回值是boolean类型
obj是Person类型的话就是真,反之就是假。
作者: 郭光明 时间: 2012-12-11 10:16
f (!(obj instanceof Person)) //这里是什么意思啊??毕老师讲的时候没有听懂啊??
{ //能否详细讲解一下
return false;
}
就是判断obj是否是Person对象 如果是返回true 不是返回false
作者: super_Xiong 时间: 2012-12-11 11:25
这个就是判断传进来的数据是不是属于Person类型,如果是,继续下面的执行,不是返回false
作者: 陈泽鑫 时间: 2012-12-11 13:09
这是没使用泛型前的例子:
equals是判断两个对象是否相等,但如果两个对象不同,连比较性都没有操作就是没有任何意义的,
毕老师只是为了讲课的效率return false,但应该抛RuntimeException异常
但这里问个问题,谁能回答就帮忙回答下吧,有些书上说,设计程序应该避免不处理异常,但如果有必须
抛RuntimeException类异常的话,如何处理,捕获RuntimeException类异常有意义吗?怎么让程序员知道
发生了什么异常呢?
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |