//Person.java
public class Person {
private String name;
public Person(String name) {
super();
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
//这里实现了该类的equals方法,
//目的用于将判断两个对象是否相等转换成判断两个对象的name是否相等
//也就是说如果两个对象的name相等,那这两个对象就相等。
public boolean equals(Object obj) {
Person p=(Person) obj;
if(this.name==null&&p.name==null){
return true;
}else if(this.name!=null && p.name!=null){
return this.name.equals(p.name);
}else{
return false;
}
}
}
==========================================================
你要的写法在这里
import java.util.Arrays;
//Test.java
public class Test {
public static void main(String[] args) {
Person[] p1=new Person[3];
Person[] p2=new Person[3];
for (int i = 0; i < p1.length; i++) {
p1[i]=new Person(""+(char)('A'+i));
p2[i]=new Person(""+(char)('A'+i));
}
//判断两个数组里的元素是否依次对应相等,
//就用系统的这个方法
//这个方法会使用各个元素的equals方法进行比较,最后得出结论
boolean b = Arrays.deepEquals(p1, p2);
System.out.println(b);
//用for循环进行比较做法如下
b=true;
for (int i = 0; i < p1.length; i++) {
//如果Person没有重写equals方法这么写
if(!p1[i].getName().equals(p2[i].getName())){
//如果有一个不一样,就记录下来,然后退出
b=false;
break;
}
//如果重写equals方法了,这么写
if(!p1[i].equals(p2[i])){
//如果有一个不一样,就记录下来,然后退出
b=false;
break;
}
}
//打印出结果
System.out.println(b);
}
}
比较的方法需要你自己写,最好是些在那个需要进行比较的类中,也就是你自己定你想要以他的什么属性来作为比较标准。
public class ComparePerson {
public static void main(String []args)
{
Person p1[]=new Person[3];
Person p2[]=new Person[3];
for(int i=0;i<3;i++)
{
p1[i]=new Person(("person"+i),(i+20));
p2[i]=new Person(("person"+i),(i+20));
//p2[i]=new Person("person2",(i+10)); 这样写以后下面打印出来的值为false
}
//System.out.println("这两群人的年龄是否对应相同? "+compare(p1,p2));
System.out.println("这两群人的姓名是否对应相同? "+compare(p1,p2));
}
public static boolean compare(Person []p1, Person[]p2)
{
for(int i=0;i
if(p1[i].compareTo(p2[i])!=0)
{
return false;
}
}
return true;
}
}
class Person
{
private int age;
private String name;
public Person(String name, int age)
{
this.name =name;
this.age = age;
}
public int getAge()
{
return age;
}
public String getName()
{
return name;
}
/*public int compareTo(Person p)
{
//这里我假设以年龄作为标准来比较
if(age>p.getAge())
{
return 1;
} else if(age < p.getAge())
{
return -1;
} else return 0;
}*/
public int compareTo(Person p)
{
//这里我假设以姓名作为标准来比较,调用字符串比较的方法;
return name.compareTo(p.getName());
}
}
楼主,你的数组什么类型啊?
for(int i = 0;i