Description
经过不懈的努力,C~K终于当上了班主任。
现在他要统计班里学生的名单,但是C~K在教务系统中导出班级名单时出了问题,发现有学号相同的学生。学号相同,代表同一个学生。(如果学号相同,后来读入的学生信息会覆盖已有的学生信息)
但是工作量太大了,所以找到了会编程的你,你能帮他解决这个问题吗?
Input
第一行输入一个N,代表C~K导出的名单共有N行。
接下来的N行,每一行包括一个学生的信息,数据之间用1个空格分隔,如:学号 姓名 年龄 性别。
Output
第一行输出一个n,代表数据处理之后C~K的班级共有几人。
接下来的n行,按照学号从小到大的顺序输出每一个学生的信息。
Sample
Input
6
0001 MeiK 20 M
0001 Anna 20 M
0002 sdk2 21 M
0002 Chris 21 M
0002 Kare 21 M
0000 blf2 22 F
Output
3
0000 blf2 22 F
0001 Anna 20 M
0002 Kare 21 M
import java.util.*;
class Student {
String id,name;
int age;
char sex;
public Student(String id, String name, int age, char sex) {
super();
this.id = id;
this.name = name;
this.age = age;
this.sex = sex;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return id+" "+name+" "+age+" "+sex;
}
}
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
Map<String,Student> map = new HashMap<String,Student>();
Student stu;
String id;
int n = input.nextInt();
while(n-->0) {
id = input.next();
stu = new Student(id,input.next(),input.nextInt(),input.next().charAt(0));
map.put(id, stu);
}
List<String> list = new ArrayList<String>(map.keySet());
Collections.sort(list);
System.out.println(map.size());
Iterator<String> it = list.iterator();
while(it.hasNext())
System.out.println(map.get(it.next()));
input.close();
}
}