java_day12练习题
练习1
一、需求说明:自定义一个学生类,给出成员变量name和age,使用HashSet集合存储自定义对
象并遍历,遍历集合的时候,在控制台输出学生对象的成员变量值。要求使用两种方式进行遍历
(迭代器、增强for)。
二、当上述内容解决完毕以后,如果集合中存储的学生对象,年龄和姓名都相同,认为是同一个
人,就不存储在集合中,该如何做呢。
package com.scy12;
import java.util.Objects;
public class Student {
private String name;
private int age;
public Student() {
}
public Student(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Student student = (Student) o;
return age == student.age &&
Objects.equals(name, student.name);
}
@Override
public int hashCode() {
return Objects.hash(name, age);
}
}
package com.scy12;
import java.util.HashSet;
import java.util.Iterator;
public class HashSetDemo {
public static void main(String[] args) {
HashSet<Student> hs = new HashSet<Student>();
Student s1 = new Student("林青霞",30);
Student s2 = new Student("张曼玉",32);
Student s3 = new Student("王祖贤",33);
Student s4 = new Student("王祖贤",33);
Student s5 = new Student("张曼玉",32);
hs.add(s1);
hs.add(s2);
hs.add(s3);
hs.add(s4);
hs.add(s5);
Iterator<Student> it = hs.iterator();
while (it.hasNext()){
Student s = it.next();
System.out.println(s.getName()+s.getAge());
}
for (Student s :hs){
System.out.println(s.getName()+s.getAge());
}
}
}
练习2
三、需求说明:自定义一个学生类,给出成员变量name和age,创建HashMap集合键是String,
代表学号,值是自定义学生对象,代表每一个学生,给集合中添加一些元素,并使用两种方式遍
历HashMap集合。
package com.scy12;
import java.util.Objects;
public class Student {
private String name;
private int age;
public Student() {
}
public Student(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
ackage com.scy12;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class HashMapTest {
public static void main(String[] args) {
HashMap<String,Student> hm = new HashMap<String, Student>();