键盘随机输入一个字符串,统计该字符串中每个字符出现的次数并打印。 请按以下要求顺序编码: 定义学生类Student,属性:姓名、性别、年龄 定义测试类,及main()方法 定义一个存储Student类型的HashSet集合 创建以下三个Student对象 张三,男,20 李四,女,21 张三,男,20 将上述三个对象存储到Set集合中 使用增强for遍历集合,获取每个Student对象,并打印属性值; 请实现集合中不能存储姓名年龄相同的元素
时间: 2024-04-07 07:30:03 浏览: 81
好的,请看下面的Java代码实现:
首先,定义学生类`Student`,包含姓名、性别、年龄属性:
```java
public class Student private String name;
private gender;
private int;
public Student(String name, String gender, int age) {
this.name = name;
this.gender = gender;
this.age = age;
}
// Getters and Setters
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
// Override equals() and hashCode() to ensure uniqueness based on name and age
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null || getClass() != obj.getClass()) {
return false;
}
Student student = (Student) obj;
return name.equals(student.name) && age == student.age;
}
@Override
public int hashCode() {
return Objects.hash(name, age);
}
// Override toString() to print attribute values
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", gender='" + gender + '\'' +
", age=" + age +
'}';
}
}
```
然后,定义测试类,并按照要求进行编码:
```java
import java.util.HashSet;
import java.util.Set;
public class TestStudent {
public static void main(String[] args) {
Set<Student> studentSet = new HashSet<>();
// 创建三个Student对象
Student student1 = new Student("张三", "男", 20);
Student student2 = new Student("李四", "女", 21);
Student student3 = new Student("张三", "男", 20);
// 将三个对象存储到Set集合中
studentSet.add(student1);
studentSet.add(student2);
studentSet.add(student3);
// 使用增强for遍历集合,打印属性值
for (Student student : studentSet) {
System.out.println(student);
}
}
}
```
这段代码定义了一个`HashSet`集合,并创建了三个`Student`对象。将这三个对象存储到集合中,由于我们在`Student`类中重写了`equals()`和`hashCode()`方法,确保了集合中不能存储姓名和年龄相同的元素。然后使用增强for循环遍历集合并打印每个`Student`对象的属性值。
运行以上代码,输出结果如下:
```
Student{name='张三', gender='男', age=20}
Student{name='李四', gender='女', age=21}
```
希望能帮到你!如果你有其他问题,请随时提问。
阅读全文