為什么我不能通過get獲取元素?
/**
* 測試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>?
2019-06-07
你建立的是set集合,set是無序的不能調(diào)用get方法
2019-02-13
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.為學(xué)生選課
?* @author Administrator
?*
?*/
public class SetTest {
public Set<Course> courseToSelect;//創(chuàng)建一個List 的 courseToSelect
public SetTest() {
this.courseToSelect=new HashSet<Course>();//實例化
}
Student stu1=new Student("1","小明");//創(chuàng)建學(xué)生
/**
?* 添加課程
?*/
public void test() {
Course c1=new Course("1","數(shù)據(jù)結(jié)構(gòu)");//創(chuàng)建一個課程對象
courseToSelect.add(c1);//把課程放入list中
Course c2=new Course("2","C語言");//創(chuàng)建一個課程對象
courseToSelect.add(c2);//把課程放入list中 ? ? ? ? ? ? ? 添加到指定位置?。。?!
//注意,添加不能大于現(xiàn)在集合的長度!否則報錯!!
//通過數(shù)組的方式
Course[] c3= {new Course("3","離散數(shù)學(xué)"),new Course("4","匯編語言")};
courseToSelect.addAll(Arrays.asList(c3));//通過Arrays.asList將c3數(shù)組傳入List中!!
Course[] c4= {new Course("5","專業(yè)英語"),new Course("6","高等數(shù)學(xué)")};
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);
}
}
/**
* 創(chuàng)建學(xué)生,選擇三門課程
* @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);//將選定的課程放入學(xué)生列表
}
}
?}
//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();
}
}
這是我的全部代碼,哪里的問題呢