问答详情
源自:4-11 学生选课---通过 Set 集合管理课程

关于Set元素的重复问题,

package com.web.mooc.collection.coursestu;

import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;

/*
 * 学生类
 */
public class Student {
    public String id;
    public String name;
    public Set<Course> courses;
    
    public Student(String id, String name) {
    this.id = id;
    this.name = name;
    this.courses = new HashSet<Course>();
    }
    
    public static void main(String[] args) {
    Student st = new Student("1005", "小明");
    System.out.println("学生 " + st.id + " " + st.name + "选择的课程如下:");
    st.coursesSelected();
    }
    
    public void coursesSelected() {
    Course[] cr = { new Course("1", "离散数学"), new Course("2", "大学英语"),
        new Course("3", "Java基础") };
    Course cr1 = new Course("3", "Java基础");
    courses.addAll(Arrays.asList(cr));
    courses.addAll(Arrays.asList(cr));
    // 第二次添加"3", "Java基础"
    courses.add(cr1);
    // 第三次添加"3", "Java基础"
    courses.add(cr1);
    System.out.println("添加了课程");
    show(courses);
    }
    
    public void show(Set<Course> courses) {
    for (Course obj : courses) {
        System.out.println(obj.id + obj.name);
    }
    
    }
}

========================运行结果===================================

学生 1005 小明选择的课程如下:
添加了课程
3Java基础
1离散数学
2大学英语
3Java基础

Set中的元素重复指的是,是不能添加同一个对象的引用,还是不能添加相同内容的对象???


提问者:无心水2012 2015-04-12 10:26

个回答

  • 康振宁
    2015-04-13 10:45:50

    Set是存放的是对象的引用,没有重复对象