题解 | 记票统计
解题思路:
- 思路比较简单:一个Map存储相关的Key对应的数量
- 要保证输出顺序,可以使用 LinkedHashMap
import java.util.LinkedHashMap; import java.util.Map; import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = Integer.parseInt(in.nextLine()); String[] arr = in.nextLine().split(" "); int voters = Integer.parseInt(in.nextLine()); String[] voteArr = in.nextLine().split(" "); Map<String, Integer> map = new LinkedHashMap<>(); for (int i = 0; i < n; i++) { map.put(arr[i], 0); } map.put("Invalid", 0); for (int i = 0; i < voters; i++) { Integer v = map.get(voteArr[i]); if (v != null) { map.put(voteArr[i], v + 1); } else { map.put("Invalid", map.getOrDefault("Invalid", 0) + 1); } } map.forEach((k, v)-> { System.out.println(k + " : " + v); }); } }