gpt4 book ai didi

java - Object类型的数组,并比较数组内的对象

转载 作者:行者123 更新时间:2023-12-02 07:17:37 25 4
gpt4 key购买 nike

我正在创建一个对象类型的数组。我有两个不同的类,员工和人员,它们具有简单的属性,如姓名、工资(员工)名字、出生日期(人员)。我需要将一些 Employee 和 Person 对象添加到我的数组中,并比较数组中的某些内容。例如,从数组中检索最年轻的 Person。

public class Driver {

public static void main(String[] args) {
Employee e1 = new Employee("Den", 2000);

Employee e2 = new Employee("Jon", 1004);

Person p1 = new Person("Pen", "Tel", "1993");
Person p2 = new Person("Jon", "Smith", "1933");

Object [] crr;
crr = new Object[4];
crr[0] = e1;
crr[1] = p1;
crr[2] = p2;
crr[3] = e2;
System.out.println();
new Driver().printObjectArray("array crr", crr);

}
public void printObjectArray(String arrayName, Object [] array){
for (int i = 0; i < array.length; i++){
System.out.println(arrayName + "["+ i +"]" + array[i].toString());
}
System.out.println("--------------------");
}
}

我如何比较数组上的某些内容。就像打印最年轻的人一样,这意味着我必须查看数组并查看它是否是 Person 对象,然后在这些对象上 getDateOfBirth 并打印最年长的人。

最佳答案

public Person getYoungestPerson(Object [] arr){

int i=0; Person youngest;
while(person == null){
if(arr[i] instanceof Person) youngest = arr[i];
i++;
}
for(i=0;i<arr.length;i++){ if (arr[i] instanceof Person)
if(arr[i].getDateOfBirth()<youngest.getDateOfBirth())
youngest= arr[i];}
return youngest;
}

理想情况下,Employee 应该是 Person 的子类,并且您将拥有一个 Person 数组。如果你想要 only Persons,你必须小心,因为 instanceof 也为所有子类返回 true,这不是你的情况,因为 Employee 不扩展 Person,只是一个展望 future 。

关于java - Object类型的数组,并比较数组内的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14741247/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com