Java(十三)--Set的添加,删除,修改
Set即集合,有着无序性,不可重复性等特性。HashSet是Set的重要实现类,哈希集 同List相同,有add(),addAll(),remove(),removeAll(),size()等方法,但没有set(),get()方法,(以上方法都没有写参数)。因为Set有无序性,所以不能通过下标来获取元素。只能通过Iterator和for方法 接上个程序(Course),这次创建学生类
import java.util.*; /* * 学生类 */ public class Student { public String id; public String name; public Set<Course> courses; Student(String newId,String newName){ id=newId; name=newName; courses=new HashSet<Course>(); } }
学生类中有Set,已选课程 新建一个测试类SetTest,其中有属性coursesToSelect(List)作为备选课程
import java.util.*; public class SetTest { public List<Course> coursesToSelect; public SetTest(){ coursesToSelect=new ArrayList<Course>(); } /* *将课程添加到List中去 *同上个教程的添加方法 */ public void testAdd(){ //创建一个课程对象,并通过add方法添加List中 Course cr1=new Course("1","数据结构"); coursesToSelect.add(cr1); Course cr2=new Course("2","C"); coursesToSelect.add(0,cr2); Course[] course={ new Course("3","离散数学"),new Course("4","汇编语言")}; coursesToSelect.addAll(Arrays.asList(course)); Course[] course2={ new Course("5","高等数学"),new Course("6","大学英语")}; coursesToSelect.addAll(2,Arrays.asList(course2)); } /* *遍历输出课程 */ public void testForEach(){ System.out.println("添加了如下课程(通过foreach)"); for(Object obj: coursesToSelect){ Course cr=(Course)obj; System.out.println("添加了课程:"+cr.id+":"+cr.name); } } public static void main(String[] args) { // TODO Auto-generated method stub SetTest st=new SetTest(); st.testAdd(); st.testForEach(); //新建学生对象 Student student=new Student("1","小明"); System.out.println("welcome"+student.name+"选课"); //选课,通过输入ID与List中的id对应 Scanner console=new Scanner(System.in); for(int i=0;i<3;i++){ System.out.println("请输入课程ID"); String courseId=console.next(); for(Course cr:st.coursesToSelect){ if(cr.id.equals(courseId)){ student.courses.add(cr); //student.courses.add(cr);//set中元素不可重复,重复添加只添加一次 } } Course[] course1={ new Course("1","数据结构"),new Course("2","C"),new Course("3","离散数学")}; student.courses.addAll(Arrays.asList(course1)); } st.testForEachForSet(student); } public void testForEachForSet(Student student){ //打印输出课程 System.out.println("供选择了:"+student.courses.size()+"门课程"); for(Course cr: student.courses){ System.out.println("选择了课程:"+cr.id+":"+cr.name); } } }
由上面代码看出,Set的初级用法(添加)和List并没有多大区别,但是如何添加一个数组还没学会。(addAll的用法)
下一篇:
基于SSM的学生信息管理系统