某个班80名学生,现组织秋游,班长提供了四个景点(a,b,c,d)每个学生只能选择一个景点,请统计出那个景点想去的人最多
时间: 2024-12-13 20:20:27 浏览: 13
为了统计出八个景点中最受欢迎的那个,你需要让每位学生选择他们想去的景点,并记录他们的选择。通常的做法是创建一个字典或者哈希表,其中键是景点名称(a、b、c、d),值是选择该景点的学生数量。
例如,可以先初始化一个HashMap,然后遍历所有学生,对于每个学生的选项,增加对应的值。最后,遍历这个HashMap,找出值最大的一项,即最受欢迎的景点。
以下是伪代码形式:
```java
Map<String, Integer> popularity = new HashMap<>();
for (Student student : students) {
String choice = student.getChoice();
popularity.put(choice, popularity.getOrDefault(choice, 0) + 1);
}
String mostPopular = popularity.entrySet().stream()
.max(Comparator.comparingInt(Map.Entry::getValue))
.map(Map.Entry::getKey)
.orElse(null); // 返回默认值,如果所有学生都不选,则返回null
```
相关问题
某个班级80名学生,现在需要组织秋游活动,班长提供了四个景点依次是(A,B,C,D),每个学生只能选择一个景点,请统计出每个景点想去的人数是多少
要统计每个景点想去的学生人数,你可以创建一个Java程序,使用HashMap来存储每个景点和对应的人数。以下是一个简单的实现步骤:
1. 创建一个`Student`类,包含学生的姓名和他们选择的景点(例如使用枚举类型或字符串)。
```java
public class Student {
private String name;
private TouristSpot chosenSpot;
// 构造器、getter和setter省略
public enum TouristSpot {
A, B, C, D
}
}
```
2. 创建一个`TouristSpotCounter`类,用于统计景点选择人数。
```java
import java.util.HashMap;
import java.util.Map;
public class TouristSpotCounter {
private Map<TouristSpot, Integer> spotCounts = new HashMap<>();
public void countStudents(Student[] students) {
for (Student student : students) {
spotCounts.put(student.chosenSpot, spotCounts.getOrDefault(student.chosenSpot, 0) + 1);
}
}
public int getCount(TouristSpot spot) {
return spotCounts.getOrDefault(spot, 0);
}
// 其他方法如打印结果等
}
```
3. 主程序调用`TouristSpotCounter`类进行统计。
```java
public class Main {
public static void main(String[] args) {
// 假设这里有80个学生数据
Student[] students = createRandomStudents(80); // 这里是生成80个随机学生的逻辑
TouristSpotCounter counter = new TouristSpotCounter();
counter.countStudents(students);
// 打印结果
for (Map.Entry<TouristSpot, Integer> entry : counter.spotCounts.entrySet()) {
System.out.println("景点 " + entry.getKey() + " 想去的学生有:" + entry.getValue());
}
}
// 辅助方法:创建80个随机学生
private static Student[] createRandomStudents(int size) {
// 实现这部分逻辑,根据需求生成随机学生的数组
// ...
}
}
```
某个班级80名学生,现在需要组织秋游活动,班长提供了四个景点依次是(A、B、C、D),每个学生只能选择一个景点进行投票,请统计出最终哪个景点想去的人数最多。 分析 将80个学生选择的数据拿到程序中去,[A, A, B , A, B, C, D, ...] 准备一个Map集合用于存储统计的结果,Map<String,Integer>,键是景点,值代表投票数量。 遍历80个学生选择的景点,每遍历一个景点,就看Map集合中是否存在该景点,不存在存
入该景点并将投票数量设置为1,存在则将对应景点的投票数量加1。最后遍历Map集合找出投票数量最多的景点即可。下面是示例代码:
```
import java.util.*;
public class VoteCount {
public static void main(String[] args) {
String[] votes = {"A", "A", "B", "A", "B", "C", "D", ...}; // 假设这是80个学生选择的景点数据
Map<String, Integer> voteMap = new HashMap<>(); // 存储统计结果的Map集合
// 遍历80个学生选择的景点
for (String vote : votes) {
if (voteMap.containsKey(vote)) { // 如果Map集合中已存在该景点,则将投票数量加1
voteMap.put(vote, voteMap.get(vote) + 1);
} else { // 如果Map集合中不存在该景点,则将该景点加入Map集合,并将投票数量设置为1
voteMap.put(vote, 1);
}
}
// 遍历Map集合找出投票数量最多的景点
String maxVote = "";
int maxCount = 0;
for (Map.Entry<String, Integer> entry : voteMap.entrySet()) {
if (entry.getValue() > maxCount) {
maxVote = entry.getKey();
maxCount = entry.getValue();
}
}
System.out.println("最终想去的景点是:" + maxVote + ",得票数为:" + maxCount);
}
}
```
阅读全文