2D阵列使用扫描仪,输入;命名年龄性别并找到最老的人

时间:2015-11-22 16:55:23

标签: java arrays java.util.scanner

类似的东西,但使用2D数组输入姓名,年龄,性别,并找到用户输入的最老的人。

List<String> list = new ArrayList<String>();
Scanner stdin = new Scanner(System.in);

do {
    System.out.println("Current list is " + list);
    System.out.println("Add more? (y/n)");
    if (stdin.next().startsWith("y")) {
        System.out.println("Enter : ");
        list.add(stdin.next());
    } else {
        break;
    }
} while (true);

System.out.println("List is " + list);
String[] arr = list.toArray(new String[0]);
System.out.println("Array is " + Arrays.toString(arr));

1 个答案:

答案 0 :(得分:0)

您应该创建一个Person类,其中包含agenamegender等属性,并且应该实现Comparable接口。

人员类

class Person implements Comparable{
    String name;
    String gender;
    int age;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getGender() {
        return gender;
    }
    public void setGender(String gender) {
        this.gender = gender;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    @Override
    public int compareTo(Object arg0) {
        Person p = (Person)arg0;
        return p.getAge() - this.getAge();
    }


}

主要课程

List<Person> personList = new ArrayList<Person>();

    while(true) {
        Person p =new Person();
        Scanner stdin = new Scanner(System.in);
        System.out.println("Enter name :");
        p.setName(stdin.next());
        System.out.println("Enter gender :");
        p.setGender(stdin.next());
        System.out.println("Enter age :");
        p.setAge(stdin.nextInt());
        personList.add(p);
        System.out.println("Do you want to add more ?(Y/N)");
        if(stdin.next().equalsIgnoreCase("N")) {
            break;
        }
    }
    Collections.sort(personList);
    System.out.println("The oldest person is " + personList.get(0).getName());