4.写一个Student类, 包含属性id[1-30), grade[1-6], score[0-100], 所有属性都是随机生成
创建一个Set集合, 保存20个对象, 如果两个对象的id是一样的,则不允许添加.
使用迭代器遍历集合,打印输出对象的信息, 并找出分数最高的同学和分数最低的同学, 最后打印输出最高分和最低分同学信息。
代码敬上,我想问我运行时每次遍历到第七个学生的score都读不出来,这是为什么???? 有人能解决一下吗,感谢。Java code
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
package cn.yann.exp4;
import java.util.HashSet;
import java.util.Set;
import java.util.Iterator;
package cn.yann.exp4;
public class Student {
private int id;
private int grade;
private int score;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getGrade() {
return grade;
}
public void setGrade(int grade) {
this.grade = grade;
}
public int getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
}
public Student(){
id = (int)(Math.random()*28) + 1;
grade = (int)(Math.random()*5) + 1;
score = (int)(Math.random()*100);
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + id;
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Student other = (Student) obj;
if (id != other.id)
return false;
return true;
}
}public class Test {public static void main(String[] args) {
Set<Student> s = new HashSet<Student>();
int i = 1;
while( i <= 20){
Student stu = new Student();
if(s.contains(stu)){
System.out.println("id相同,添加失败");
System.out.println(stu.getId());
}
else{
s.add(stu);
System.out.println("添加学生"+i+"成功:"+stu.getId());
i++;
}
}Iterator<Student> it = s.iterator();
i = 1;
while(it.hasNext()){
System.out.print("学生"+i+"id:"+it.next().getId()+" ");
System.out.print("grade:"+it.next().getId()+" ");
System.out.print("score:"+it.next().getId());
System.out.println();
i++;
}}}
创建一个Set集合, 保存20个对象, 如果两个对象的id是一样的,则不允许添加.
使用迭代器遍历集合,打印输出对象的信息, 并找出分数最高的同学和分数最低的同学, 最后打印输出最高分和最低分同学信息。
代码敬上,我想问我运行时每次遍历到第七个学生的score都读不出来,这是为什么???? 有人能解决一下吗,感谢。Java code
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
package cn.yann.exp4;
import java.util.HashSet;
import java.util.Set;
import java.util.Iterator;
package cn.yann.exp4;
public class Student {
private int id;
private int grade;
private int score;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getGrade() {
return grade;
}
public void setGrade(int grade) {
this.grade = grade;
}
public int getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
}
public Student(){
id = (int)(Math.random()*28) + 1;
grade = (int)(Math.random()*5) + 1;
score = (int)(Math.random()*100);
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + id;
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Student other = (Student) obj;
if (id != other.id)
return false;
return true;
}
}public class Test {public static void main(String[] args) {
Set<Student> s = new HashSet<Student>();
int i = 1;
while( i <= 20){
Student stu = new Student();
if(s.contains(stu)){
System.out.println("id相同,添加失败");
System.out.println(stu.getId());
}
else{
s.add(stu);
System.out.println("添加学生"+i+"成功:"+stu.getId());
i++;
}
}Iterator<Student> it = s.iterator();
i = 1;
while(it.hasNext()){
System.out.print("学生"+i+"id:"+it.next().getId()+" ");
System.out.print("grade:"+it.next().getId()+" ");
System.out.print("score:"+it.next().getId());
System.out.println();
i++;
}}}
Student tempStu = it.next();
System.out.println("学生" + i + "id:" + tempStu.getId() + " grade:" + tempStu.getGrade() + " score:" + tempStu.getScore());
i++;
}
public class Student {
private int id;
private int grade;
private int score;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getGrade() {
return grade;
}
public void setGrade(int grade) {
this.grade = grade;
}
public int getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + grade;
result = prime * result + id;
result = prime * result + score;
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Student other = (Student) obj;
if (grade != other.grade)
return false;
if (id != other.id)
return false;
if (score != other.score)
return false;
return true;
}
public Student(){
id = (int)(Math.random()*30) + 1;
grade = (int)(Math.random()*5) + 1;
score = (int)(Math.random()*100)+1;
}
}
public class Test { public static void main(String[] args) {
Set<Student> s = new HashSet<Student>();
int i = 1;
while( i <= 30){
Student stu = new Student();
if(s.contains(stu)){
System.out.println("id相同,添加失败");
System.out.println(stu.getId());
}
else{
s.add(stu);
System.out.println("添加学生"+i+"成功:"+stu.getId());
i++;
}
} Iterator<Student> it = s.iterator();
int j = 1;
do{
Student stu = it.next();
System.out.print("学生"+j+"id:"+stu.getId()+" ");
System.out.print("grade:"+stu.getGrade()+" ");
System.out.print("score:"+stu.getScore());
System.out.println();
j++;
}while(it.hasNext());
}}