您的位置:首页 > 编程语言 > Java开发

Java(十三)--Set的添加,删除,修改

2015-08-25 20:17 585 查看
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的用法)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: