Set接口及其实现类----HashSet
Set是元素无序并且不可以重复的集合,被称为集
HasSet--哈希集,是Set的一个重要的实现类
List-->有序的
Set-->无序的
![](/attachment/201502/15/30035714_1424013461zzNf.jpg)
-
package com.imooc.collection;
-
-
import java.util.HashSet;
-
import java.util.Set;
-
-
/**
-
* 学生类
-
*
-
* @author Administrator
-
*
-
*/
-
public class Student {
-
-
public String id;
-
public String name;
-
-
public Set courses;// Collection 的子接口Set,所选课程的属性
-
-
public Student(String id, String name) {
-
this.id = id;
-
this.name = name;
-
// 不能直接实例化Set,因为Set是一个接口,通过一个HashSet()去对Set进行一个实例化
-
// 所选课程的属性进行初始化
-
// this.courses = new HashSet();//
-
this.courses = new HashSet<Course>();
-
}
-
}
新建一个类:SetTest.java
-
package com.imooc.collection;
-
-
import java.util.ArrayList;
-
import java.util.Arrays;
-
import java.util.List;
-
import java.util.Scanner;
-
-
/**
-
* @author ECJTU IsayesHu
-
*
-
*/
-
public class SetTest {
-
-
public List<Course> coursesToSelect;
-
-
public SetTest() {
-
coursesToSelect = new ArrayList<Course>();
-
}
-
-
/**
-
* @param args
-
*/
-
-
public void testAdd() {
-
// 创建一个对象,并通过调用add方法,添加到备选课程List中
-
Course cr1 = new Course("1", "数据结构");
-
coursesToSelect.add(cr1);
-
Course temp = (Course) coursesToSelect.get(0);
-
System.out.println("添加了课程-->" + temp.id + ":" + temp.name);
-
-
Course cr2 = new Course("2", "C语言");
-
coursesToSelect.add(0, cr2);
-
Course temp2 = (Course) coursesToSelect.get(0);
-
-
Course[] course = { new Course("3", "离散数学"), new Course("4", "汇编语言") };
-
coursesToSelect.addAll(Arrays.asList(course));
-
Course temp3 = (Course) coursesToSelect.get(2);
-
Course temp4 = (Course) coursesToSelect.get(3);
-
-
Course[] course2 = { new Course("5", "高等数学"), new Course("6", "大学英语") };
-
coursesToSelect.addAll(2, Arrays.asList(course2));
-
Course temp5 = (Course) coursesToSelect.get(2);
-
Course temp6 = (Course) coursesToSelect.get(3);
-
}
-
-
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) {
-
SetTest st = new SetTest();
-
st.testAdd();
-
st.testForEach();
-
// 创建一个学生对象
-
Student student = new Student("1", "小明");
-
System.out.println("欢迎学生:" + student.name + "选课!");
-
// 创建一个Scanner对象,用来接收从键盘输入的课程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);
-
}
-
}
-
}
-
st.testForEachSet(student);
-
}
-
-
public void testForEachSet(Student student) {
-
// 打印输出,学生所选的课程
-
System.out.println("共选了" + student.courses.size() + "门课程!");
-
for (Course cr : student.courses) {// 记得把Student.java中的Set改成泛型Course
-
System.out.println("选择了课程:" + cr.id + ":" + cr.name);
-
}
-
}
-
}
-
package com.imooc.collection;
-
-
import java.util.HashSet;
-
import java.util.Set;
-
-
/**
-
* 学生类
-
*
-
* @author Administrator
-
*
-
*/
-
public class Student {
-
-
public String id;
-
public String name;
-
-
public Set<Course> courses;// Collection 的子接口Set,所选课程的属性
-
-
public Student(String id, String name) {
-
this.id = id;
-
this.name = name;
-
// 不能直接实例化Set,因为Set是一个接口,通过一个HashSet()去对Set进行一个实例化
-
// 所选课程的属性进行初始化
-
// this.courses = new HashSet();//
-
this.courses = new HashSet<Course>();
-
}
-
}
阅读(144) | 评论(0) | 转发(0) |