java pta7-5 出勤统计每行表示某天出勤的员工名单,以空格间隔。 end表示输入结束
时间: 2024-03-20 14:40:50 浏览: 224
PTA-java部分题库
好的,这是Java PTA7-5出勤统计的题目描述,需要你编写一个程序来统计每个员工的出勤情况。以下是参考代码:
```
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Map<String, Integer> map = new HashMap<>();
while (sc.hasNext()) {
String line = sc.nextLine();
if (line.equals("end")) {
break;
}
String[] names = line.split(" ");
for (String name : names) {
if (!map.containsKey(name)) {
map.put(name, 1);
} else {
map.put(name, map.get(name) + 1);
}
}
}
List<Map.Entry<String, Integer>> list = new ArrayList<>(map.entrySet());
Collections.sort(list, new Comparator<Map.Entry<String, Integer>>() {
public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {
return o1.getKey().compareTo(o2.getKey());
}
});
for (Map.Entry<String, Integer> entry : list) {
System.out.println(entry.getKey() + " " + entry.getValue());
}
}
}
```
程序的基本思路是:使用 `Scanner` 读入每一行输入,然后使用 `split` 方法将每一行的员工名单分割成一个字符串数组,接着遍历该数组中的每个元素,如果该元素在 `map` 中不存在,则将其添加到 `map` 中并将其出勤次数设为1,否则将其对应的值加1。最后,使用 `Collections.sort` 方法将 `map` 转化为一个 `List` 并按照键名进行排序,最后遍历该 `List` 打印每个员工的出勤情况。
希望这个回答能够帮到你,如果还有其他问题,可以继续问我哦。
阅读全文