java集合中Set接口
实例1:
声明一个Set集合,只能保存Double类型的数据, 保存10个随机100以内的数, 找出最大值和最小值,打印输出.
public class Ch01 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Set<Double> set = new HashSet<>();
for(int i = 0;i < 10;i++){
set.add(Math.random()*100);
}
double min = 100;
double max = 0;
Iterator iter = set.iterator();
while(iter.hasNext()){
double r = (double) iter.next();
System.out.println(r);
if(r < min){
min = r;
}
if(r>max){
max = r;
}
}
System.out.println("最大值是:"+max);
System.out.println("最小值是:"+min);
}
}
实例2:
写一个Student类, 包含属性id[1-30), grade[1-6], score[0-100], 所有属性都是随机生成 ,创建一个Set集合, 保存20个对象, 如果两个对象的id是一样的,则不允许添加. 使用迭代器遍历集合,打印输出对象的信息, 并找出分数最高的同学和分数最低的同学, 最后打印输出最高分和最低分同学信息.
Student类:
public class Student {
private int id;
private int grade;
private int score;
public Student(int id, int grade, int score) {
super();
this.id = id;
this.grade = grade;
this.score = 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;
}
}
Test测试类:
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
Set<Student> set = new HashSet<>();
do{
int id = (int) (Math.random()*29+1);
int grade = (int) (Math.random()*6+1);
int score = (int) (Math.random()*100);
if(!set.contains(id)){
Student stu = new Student(id, grade, score);
set.add(stu);
}
}while(set.size()<20);
Iterator iter = set.iterator();
System.out.println("id\tgrade\tscore");
int min = 100,max = 0;
while(iter.hasNext()){
Student s = (Student)iter.next();
System.out.println(s.getId()+"\t"+s.getGrade()+"\t"+s.getScore());
if(max<s.getScore()){
max=s.getScore();
}
if(min>s.getScore()){
min=s.getScore();
}
}
System.out.println("最高分是"+max);
System.out.println("最低分是"+min);
}
}