现有一个类student,包含name、class、age三个属性,有一个学生列表studentList,需要遍历这个列表取出所有的class属性,并且去重后生成一个只包含class信息的列表,如何用java写?
时间: 2024-10-15 17:25:36 浏览: 16
在Java中,你可以使用ArrayList集合以及HashSet来实现这个需求。首先,创建一个只包含班级名称的Set,然后遍历Student List,添加每个学生的班级到Set中,由于Set不允许有重复元素,所以遍历结束后,Set中的元素就是无重复的班级列表。以下是代码示例:
```java
import java.util.ArrayList;
import java.util.HashSet;
public class Main {
public static void main(String[] args) {
ArrayList<Student> studentList = new ArrayList<>(); // 假设这是你的学生列表
HashSet<String> uniqueClasses = new HashSet<>();
for (Student student : studentList) {
uniqueClasses.add(student.getClass()); // 使用Object类的getClass()方法获取Class对象,但实际上我们关心的是字符串"ClassName"
}
List<String> classesList = new ArrayList<>(uniqueClasses); // 将HashSet转换回List
System.out.println(classesList);
}
}
class Student {
private String name;
private String className;
private int age;
// getters and setters...
@Override
public String toString() {
return "className: " + className; // 返回用于去重的字符串
}
}
```
阅读全文