Chinaunix首页 | 论坛 | 博客
  • 博客访问: 42564
  • 博文数量: 71
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 726
  • 用 户 组: 普通用户
  • 注册时间: 2014-11-24 08:29
文章分类

全部博文(71)

文章存档

2015年(71)

我的朋友

分类: Java

2015-02-16 11:08:51

Set接口及其实现类----HashSet

Set是元素无序并且不可以重复的集合,被称为集
HasSet--哈希集,是Set的一个重要的实现类

List-->有序的
Set-->无序的




  1. package com.imooc.collection;

  2. import java.util.HashSet;
  3. import java.util.Set;

  4. /**
  5.  * 学生类
  6.  *
  7.  * @author Administrator
  8.  *
  9.  */
  10. public class Student {

  11.     public String id;
  12.     public String name;

  13.     public Set courses;// Collection 的子接口Set,所选课程的属性

  14.     public Student(String id, String name) {
  15.         this.id = id;
  16.         this.name = name;
  17.         // 不能直接实例化Set,因为Set是一个接口,通过一个HashSet()去对Set进行一个实例化
  18.         // 所选课程的属性进行初始化
  19. //        this.courses = new HashSet();//
  20.         this.courses = new HashSet<Course>();
  21.     }
  22. }
新建一个类:SetTest.java

  1. package com.imooc.collection;

  2. import java.util.ArrayList;
  3. import java.util.Arrays;
  4. import java.util.List;
  5. import java.util.Scanner;

  6. /**
  7.  * @author ECJTU IsayesHu
  8.  *
  9.  */
  10. public class SetTest {

  11.     public List<Course> coursesToSelect;

  12.     public SetTest() {
  13.         coursesToSelect = new ArrayList<Course>();
  14.     }

  15.     /**
  16.      * @param args
  17.      */

  18.     public void testAdd() {
  19.         // 创建一个对象,并通过调用add方法,添加到备选课程List中
  20.         Course cr1 = new Course("1", "数据结构");
  21.         coursesToSelect.add(cr1);
  22.         Course temp = (Course) coursesToSelect.get(0);
  23.         System.out.println("添加了课程-->" + temp.id + ":" + temp.name);

  24.         Course cr2 = new Course("2", "C语言");
  25.         coursesToSelect.add(0, cr2);
  26.         Course temp2 = (Course) coursesToSelect.get(0);

  27.         Course[] course = { new Course("3", "离散数学"), new Course("4", "汇编语言") };
  28.         coursesToSelect.addAll(Arrays.asList(course));
  29.         Course temp3 = (Course) coursesToSelect.get(2);
  30.         Course temp4 = (Course) coursesToSelect.get(3);

  31.         Course[] course2 = { new Course("5", "高等数学"), new Course("6", "大学英语") };
  32.         coursesToSelect.addAll(2, Arrays.asList(course2));
  33.         Course temp5 = (Course) coursesToSelect.get(2);
  34.         Course temp6 = (Course) coursesToSelect.get(3);
  35.     }

  36.     public void testForEach() {
  37.         System.out.println("有如下课程可以选择(通过foreach访问):");
  38.         for (Object obj : coursesToSelect) {
  39.             Course cr = (Course) obj;
  40.             System.out.println("课程:" + cr.id + ":" + cr.name);
  41.         }
  42.     }

  43.     public static void main(String[] args) {
  44.         SetTest st = new SetTest();
  45.         st.testAdd();
  46.         st.testForEach();
  47.         // 创建一个学生对象
  48.         Student student = new Student("1", "小明");
  49.         System.out.println("欢迎学生:" + student.name + "选课!");
  50.         // 创建一个Scanner对象,用来接收从键盘输入的课程ID
  51.         Scanner console = new Scanner(System.in);
  52.         for (int i = 0; i < 3; i++) {
  53.             System.out.println("请输入课程ID");
  54.             String courseId = console.next();
  55.             for (Course cr : st.coursesToSelect) {
  56.                 if (cr.id.equals(courseId)) {
  57.                     student.courses.add(cr);
  58.                     student.courses.add(cr);
  59.                 }
  60.             }
  61.         }
  62.         st.testForEachSet(student);
  63.     }

  64.     public void testForEachSet(Student student) {
  65.         // 打印输出,学生所选的课程
  66.         System.out.println("共选了" + student.courses.size() + "门课程!");
  67.         for (Course cr : student.courses) {// 记得把Student.java中的Set改成泛型Course
  68.             System.out.println("选择了课程:" + cr.id + ":" + cr.name);
  69.         }
  70.     }
  71. }



  1. package com.imooc.collection;

  2. import java.util.HashSet;
  3. import java.util.Set;

  4. /**
  5.  * 学生类
  6.  *
  7.  * @author Administrator
  8.  *
  9.  */
  10. public class Student {

  11.     public String id;
  12.     public String name;

  13.     public Set<Course> courses;// Collection 的子接口Set,所选课程的属性

  14.     public Student(String id, String name) {
  15.         this.id = id;
  16.         this.name = name;
  17.         // 不能直接实例化Set,因为Set是一个接口,通过一个HashSet()去对Set进行一个实例化
  18.         // 所选课程的属性进行初始化
  19. //        this.courses = new HashSet();//
  20.         this.courses = new HashSet<Course>();
  21.     }
  22. }



阅读(144) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~