Java 学习之集合框架---Set

来源:互联网 发布:jsp中如何引用js文件 编辑:程序博客网 时间:2024/05/20 08:42

Set中的元素不可以重复且没有顺序,我们通常称之为集。

Set 接口及其实现类-----HashSet(哈希集)

因为Set 是无序的并且不可以重复的所以 对于set 来说也就不可以进行修改,也就不存在使用get ()方法获取其中的元素,所以对于Set 来说,遍历一般采用的方法就死foreach循环迭代。

学生类:里面包含某一个学生的选课信息:

import java.util.HashSet;import java.util.Set;/** * 学生类 * @author ge.zhang * */public class Student {public String name;public String id;public Set<Course> crouse;public Student(String id,String name){    this.name=name;    this.id=id;    this.crouse=new HashSet<Course>();}}

创建Courses待选课程,通过键盘输入ID 来向学生类的SET crouse 里面添加某一位学生所选的课程。
import java.util.ArrayList;import java.util.Arrays;import java.util.List;import java.util.Scanner;import java.util.Set;public class SetTest {     public static List<Course> courses=new ArrayList<Course>();    public void AddCourse(){        Course crs[]={new Course("高等数学","1"),new Course("数据机构", "2"),new Course("C语言", "3"),new Course("大学英语", "4")};        courses.addAll(Arrays.asList(crs));    }    public void print(List<Course> co){        for(Course c1:co){            System.out.println(c1.id+":"+" "+c1.name);        }            }        public void printSet(Set<Course> co){        for(Course c1:co){            System.out.println(c1.id+":"+" "+c1.name);        }    }    public static void main(String[] args) {        SetTest st=new SetTest();        st.AddCourse();        st.print(courses);        Student student=new Student("1", "jack");        //循环接收学生选择的课程        System.out.println("欢迎学生"+student.name+"选课");        Scanner console=new Scanner(System.in);        for(int i=0;i<3;i++){            System.out.println("请输入课程名称:");            String ID=console.next();            for(Course c2:courses){                if(c2.id.equals(ID)){                 student.crouse.add(c2);                   }            }        }       st.printSet(student.crouse);    }}
连续运行两次,会发现相同的输入却有不同的输出顺序,因为Set中的元素是无顺序的,对于set中添加相同元素无论添加多少次都只保留第一个

[ 查看全文 ]

0 0
原创粉丝点击