/**
* 测试list中是否有某课程
* @param args
*/
public void listContains() {
//获取课程中的第0个元素
Course course=courseToSelect.get(0);
System.out.println("获取的课程名为"+course.name);
System.out.println("备选课程中是否有该课程"+course.name+","+ courseToSelect.contains(course));
}
他提示这个错误
The method get(int) is undefined for the type Set<Course>?
你建立的是set集合,set是无序的不能调用get方法
package whx.exerecise;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Scanner;
import java.util.Set;
/**
* 选课。
* 1.提供备选课程
* 2.为学生选课
* @author Administrator
*
*/
public class SetTest {
public Set<Course> courseToSelect;//创建一个List 的 courseToSelect
public SetTest() {
this.courseToSelect=new HashSet<Course>();//实例化
}
Student stu1=new Student("1","小明");//创建学生
/**
* 添加课程
*/
public void test() {
Course c1=new Course("1","数据结构");//创建一个课程对象
courseToSelect.add(c1);//把课程放入list中
Course c2=new Course("2","C语言");//创建一个课程对象
courseToSelect.add(c2);//把课程放入list中 添加到指定位置!!!!
//注意,添加不能大于现在集合的长度!否则报错!!
//通过数组的方式
Course[] c3= {new Course("3","离散数学"),new Course("4","汇编语言")};
courseToSelect.addAll(Arrays.asList(c3));//通过Arrays.asList将c3数组传入List中!!
Course[] c4= {new Course("5","专业英语"),new Course("6","高等数学")};
courseToSelect.addAll(Arrays.asList(c4));//只需要传入1次即可!!
}
/**
* 通过For each方法 (最简单)
* @param args
*/
public void testForEach() {
System.out.println("可以选择的课程有(使用For each):");
for(Course c:courseToSelect) {//遍历courseToSelect中的每一个元素
Course c1=(Course)c;
System.out.println("课程:"+c1.id+c1.name);
}
}
/**
* 创建学生,选择三门课程
* @param args
*/
public void Stutest() {
System.out.println("欢迎"+stu1.name+"选课!");
for(int i=0;i<3;i++) {
System.out.println("请选择一门课程");
Scanner input=new Scanner(System.in);
String num=input.next();
for(Course c:courseToSelect) {
if(c.id.equals(num)) {
Student.courses.add(c);//将选定的课程放入学生列表
}
}
}
//System.out.println("选择了课程"+Student.courses.id+":"+Student.courses.name); 不可以直接输出!需要遍历然后输出
}
public void StuTestForEach() {
for(Course c:Student.courses) {
System.out.println(c.id+":"+c.name);
}
}
/**
* 测试list中是否有某课程
* @param args
*/
public void listContains() {
//获取课程中的第0个元素
Course course=courseToSelect.get(0);
System.out.println("获取的课程名为"+course.name);
System.out.println("备选课程中是否有该课程"+course.name+","+ courseToSelect.contains(course));
}
public static void main(String[] args) {
// TODO Auto-generated method stub
SetTest t1=new SetTest();
t1.test();
t1.testForEach();
t1.Stutest();
t1.StuTestForEach();
t1.listContains();
}
}
这是我的全部代码,哪里的问题呢