本题练习列表的使用。
- 定义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;
}
Person(String name,int age){
this.name=name;
this.age=age;
}
Person(){
}
public String toString() {
return "Person [name="+getName()+", age="+getAge()+"]";
}
}
class Main{
public static void main(String args[]) {
Scanner in=new Scanner(System.in);
List list = new ArrayList();
int flag=0;
int n=in.nextInt();
for(int i=0;i<n;i++) {
String s=in.next();int a=in.nextInt();
Person p=new Person(s,a);
list.add(p);
}
String ne=in.next();
for(int i=0;i<list.size();i++) {
System.out.println(list.get(i));
}
for(int i=0;i<list.size();i++)
{
Person ps=(Person)list.get(i);
if(ne.equals(ps.getName()))
{flag=1;
System.out.println(ps);}
}
if(flag==0) {
System.out.println("此人不存在");
}
}
}