小明负责记录班上参加志愿活动的同学的学号,但某天中午小明睡梦之中胡乱操作电脑,不小心让一些同学的学号重复记录了,请你帮他复原。写java代码
时间: 2024-02-16 16:04:53 浏览: 99
假设小明记录的学号存储在一个整型数组 `studentIds` 中,你可以使用 HashSet 来去重并复原学号。以下是示例代码:
```java
import java.util.HashSet;
public class RecoverStudentIds {
public static void main(String[] args) {
int[] studentIds = {1, 2, 3, 4, 5, 2, 3, 6, 7, 4};
HashSet<Integer> set = new HashSet<>();
for (int id : studentIds) {
set.add(id);
}
int[] recoveredIds = new int[set.size()]; // 复原后的学号存储在这个数组中
int index = 0;
for (int id : set) {
recoveredIds[index++] = id;
}
// 输出复原后的学号
for (int id : recoveredIds) {
System.out.print(id + " ");
}
}
}
```
输出结果为:`1 2 3 4 5 6 7`。
相关问题
小明的课外班上有 N 个同学,每个同学的名字长度都不一样。请找出班上名字长度最长的同学 C++C++
在C++中,你可以使用`std::string`容器存储每个同学的名字,并维护一个额外的变量来跟踪当前最长的名字及其对应的索引。这里是一个简单的示例代码:
```cpp
#include <iostream>
#include <vector>
#include <string>
class Student {
public:
std::string name;
int index; // 学生在班级中的索引
Student(const std::string& n, int i) : name(n), index(i) {}
};
int findLongestNameIndex(std::vector<Student>& students) {
if (students.empty()) {
return -1; // 如果班级为空,返回-1表示没有最长名字
}
int longestLength = 0;
int longestIndex = 0;
for (size_t i = 0; i < students.size(); ++i) {
if (students[i].name.length() > longestLength) {
longestLength = students[i].name.length();
longestIndex = i;
}
}
return longestIndex;
}
int main() {
std::vector<Student> classmates = {{"小红", 0}, {"张三", 1}, {"李四", 2}, ...}; // 假设这是所有学生的列表
int maxIndex = findLongestNameIndex(classmates);
if (maxIndex != -1) {
std::cout << "名字最长的同学是:" << classmates[maxIndex].name << ", 索引为:" << maxIndex << std::endl;
} else {
std::cout << "班级里没有任何同学的名字" << std::endl;
}
return 0;
}
```
在这个例子中,`findLongestNameIndex`函数遍历整个学生列表,比较每个名字的长度,找到最长的那个并返回其对应的索引。
假设小明是班里的双创委员,需要统计参加活动的同学姓名,请用一个列表存储每次参加活动的同学姓名。输入姓名,能显示该同学是否参加过活动。
可以创建一个Python字典来实现这个功能,其中键是学生的姓名,值是一个集合,表示该学生参加过的所有活动。如果某个学生的名字第一次出现,集合将为空。以下是具体的实现步骤:
```python
# 初始化一个空字典来存储学生及其参与活动的信息
student_activities = {}
def add_student(name):
if name not in student_activities:
student_activities[name] = set()
def check_student(name):
if name in student_activities:
return "学生 {} 参加过活动".format(name)
else:
return "学生 {} 还未参加过活动".format(name)
# 示例操作
add_student("小明") # 小明加入活动记录
add_student("小红")
add_student("小明") # 小明第二次参加活动
print(check_student("小明")) # 输出:学生 小明 参加过活动
print(check_student("小红"))
阅读全文