【发布时间】:2017-04-26 13:42:05
【问题描述】:
我正在开发一个提示用户输入姓名、年龄和性别的程序。该程序应该从每个输入中给我一个姓名、年龄和性别的列表,并且还告诉我谁是该列表中最年长的人。我创建了一个 ArrayList 来保存这些值,并且可以使用增强的循环来打印出姓名、年龄和性别。我遇到的问题是让程序从 ArrayList 中打印出最高(最旧)的数字。我创建了一种替代方法,方法是创建一个只有年龄的附加 ArrayList,但我似乎没有找到从原始 ArrayList 中获取它的方法。这种替代方式只给了我额外数组中的最高数字,但如果我想打印最年长的人的名字和他/她的年龄,它就行不通了。我会很感激一些帮助来解决这个问题。我对Java真的很陌生。
到目前为止,这是我的代码:
来自个人类:
package person;
public class Person {
private String name ;
private int age;
private String gender;
private int oldestPerson;
public Person(String name1, int age1, String gender1){
name = name1;
age = age1;
gender = gender1;
}
public String getName(){
return name;
}
public int getAge(){
return age;
}
public String getGender() {
return gender;
}
public void changeName(String newName){
name = newName;
}
public void changeAge(int newAge){
age = newAge;
}
public void changeGender(String newGender){
gender = newGender;
}
public int getOldest(int max){
if (age > max){
max = age;
}
return oldestPerson;
}
}
来自 personTester 类:
package person;
import java.util.Scanner;
import java.util.ArrayList;
public class personTester {
public static void main(String [] args){
ArrayList<Person> personList = new ArrayList<Person>();
ArrayList<Integer> personAges = new ArrayList<Integer>(); //extra array
boolean Done = false;
Scanner input = new Scanner(System.in);
while(!Done){
System.out.println("enter a name");
String name = input.next();
System.out.println("enter an age");
int age = input.nextInt();
System.out.println("enter a gender");
String gender= input.next();
personList.add(new Person(name, age, gender)); //put a person inside an arraylist
personAges.add(new Integer(age));
System.out.println("Press Y to exit or N to continue");
String choice = input.next();
if(choice.equalsIgnoreCase("Y")){
Done=true;
}
}
for(Person e :personList){
System.out.println("Name: "+e.getName() +" - Age: "+ e.getAge()+" -
Gender: " + e.getGender());
} // getting the highest number from the aditional array.
int max = 0;
for (int ages: personAges){
if (ages > max){
max = ages;
}
}
System.out.println("The oldest person in the list is " + max);
}
}
【问题讨论】: