本题练习列表的使用。
- 定义Person类
- 定义私有属性String name,int age,使用Eclipse生成每个属性setter 、getter,有参Person(String name,int age) 、无参 构造方法,toString方法。
- 定义Main类,在main方法中
- 定义List list = new ArrayList();
- 用键盘给变量n赋值
- 生成n个Person对象并添加到列表中,该Person的name和age通过键盘给出
- 循环列表,输出列表所有Person对象信息(调用toString方法)
- 输入一个字符串表示姓名,判断该字符串表示的Person对象在List中是否存在,如果存在,输出该Person,否则输出此人不存在。
输入格式:
先一行输入n表示对象个数,然后每行输入一个Person对象的name和age 一行输入一个人的姓名对其进行查询
输出格式:
对每一对象,在一行中输出对象的信息。 对查询的人员,查到输出该人的信息,否则输出此人不存在。
输入样例:
在这里给出一组输入。例如:
3
zhang 23
li 44
wang 33
li
结尾无空行
3
zhang 23
li 44
wang 33
may
结尾无空行
输出样例:
在这里给出相应的输出。例如:
Person [name=zhang, age=23]
Person [name=li, age=44]
Person [name=wang, age=33]
Person [name=li, age=44]
结尾无空行
Person [name=zhang, age=23]
Person [name=li, age=44]
Person [name=wang, age=33]
此人不存在
结尾无空行
代码如下:
import java.util.*;
class Person {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Person(String name, int age) {
super();
this.name = name;
this.age = age;
}
public Person() {
}
@Override
public String toString() {
return "Person [name=" + name + ", age=" + age + "]";
}
}
class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
List list = new ArrayList();
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
for(int i=0; i<n; i++) {
list.add(new Person(sc.next(), sc.nextInt()));
}
Iterator it = list.iterator();
while(it.hasNext()) {
System.out.println(it.next().toString());
}
String str= sc.next();
for(int i=0; i<list.size(); ++i) {
if(((Person) list.get(i)).getName().equals(str)) {
System.out.println(list.get(i).toString());
break;
}
if(i==list.size()-1) {
System.out.println("此人不存在");
}
}
}
}