已知一位同学有若干个爱好。扫描一个文件内容,里面有若干位学生,每位学生有若干个爱好,创建一个函数,用java写出有几位同学有着与目标学生相同的某一种爱好
时间: 2024-03-03 09:51:02 浏览: 19
假设文件内容已经以数组的形式存储在 students 数组中,每个学生的爱好也以数组的形式存储。要统计有多少个学生的某一种爱好与目标学生的某一种爱好相同,可以使用如下的 Java 代码实现:
```java
public class Student {
private String[] hobbies;
// 构造函数和 getter/setter 方法省略
}
public class Main {
public static void main(String[] args) {
// 读取文件内容,将每个学生的信息存储到数组中
Student[] students = readFromFile();
// 假设目标学生的某一种爱好为 "爱好1"
String targetHobby = "爱好1";
int count = 0;
for (Student student : students) {
if (hasSameHobby(student.getHobbies(), targetHobby)) {
count++;
}
}
System.out.println("有 " + count + " 个学生有与目标学生相同的爱好");
}
// 判断一个数组中是否包含某个元素
private static boolean hasElement(String[] array, String element) {
for (String item : array) {
if (item.equals(element)) {
return true;
}
}
return false;
}
// 判断一个学生的爱好中是否包含某个爱好
private static boolean hasSameHobby(String[] hobbies, String targetHobby) {
return hasElement(hobbies, targetHobby);
}
// 从文件中读取学生信息,并返回一个 Student 数组
private static Student[] readFromFile() {
// ...
}
}
```
这个程序先读取文件内容,并将每个学生的信息存储到一个 Student 数组中。然后,假设目标学生的某一种爱好为 targetHobby,使用一个循环遍历每个学生,调用 hasSameHobby 方法判断该学生的爱好中是否包含目标学生的爱好。如果包含,计数器 count 加 1。最后输出 count 的值,表示有多少个学生有与目标学生相同的爱好。
hasSameHobby 方法用于判断一个学生的爱好中是否包含某个爱好。它调用了 hasElement 方法,用于判断一个数组中是否包含某个元素。如果该学生的爱好数组中包含目标学生的爱好,就返回 true,表示该学生有与目标学生相同的爱好。否则返回 false,表示该学生没有与目标学生相同的爱好。
hasElement 方法用于判断一个数组中是否包含某个元素。它使用一个循环遍历数组中的所有元素,如果找到相同的元素,就返回 true,表示数组中包含该元素。如果没有找到相同的元素,就返回 false,表示数组中不包含该元素。