集合框架(三) Set&HashSet

来源:互联网 发布:矩阵图怎么画 编辑:程序博客网 时间:2024/05/22 15:44

java集合中Set接口



实例1:

声明一个Set集合,只能保存Double类型的数据, 保存10个随机100以内的数, 找出最大值和最小值,打印输出. 

public class Ch01 {public static void main(String[] args) {// TODO Auto-generated method stubSet<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 stubSet<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);}}

原创粉丝点击