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