可以通過(guò)id來(lái)判斷是否存在該課程嗎?
package student_progress;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import java.util.Scanner;
public class SetTest {
?public List<Course>courseToSelect;
?private Scanner scanner;
?public Student student;
?public SetTest() {
courseToSelect=new ArrayList<Course>();
this.scanner=new Scanner(System.in);
?}
?public void Add() {
//創(chuàng)建一個(gè)課程對(duì)象,并通過(guò)調(diào)用add方法添加到備選課程List中
Course[] courses= {new Course(1, "數(shù)據(jù)結(jié)構(gòu)"),new Course(2, "c語(yǔ)言"),new Course(3, "離散數(shù)學(xué)"),new Course(4, "匯編語(yǔ)言"),
new Course(5, "高等數(shù)學(xué)"),new Course(6, "大學(xué)英語(yǔ)")};
courseToSelect.addAll(Arrays.asList(courses));
?
?}
?public void testIterator() {
Iterator<Course> it=courseToSelect.iterator();
System.out.println("有如下課程待選(通過(guò)迭代器訪問(wèn)):");
while(it.hasNext()) {
Course cr=(Course) it.next();
System.out.println("課程"+cr.id+":"+cr.name);
}
?}
?//創(chuàng)建學(xué)生對(duì)象并選課
?public void createStudentAndSelectCourse() {
? ? ?student=new Student(1, "小明");
? ? ?System.out.println("歡迎學(xué)生"+student.name+"來(lái)選課");
? ? ?for(int i=0;i<3;i++) {
? ? ? System.out.println("請(qǐng)輸入課程ID");
? ? ? int courseId=scanner.nextInt();
? ? ? for(Course cr:courseToSelect) {
? ? ? if(cr.id==courseId) {
? ? ? student.courses.add(cr);
? ? ? }
? ? ? }
? ? ?}
?
?}
?
?}
public static void main(String[] args) {
// TODO Auto-generated method stub
? ? ? SetTest sTest=new SetTest();
? ? ? sTest.Add();
? ?
? ? ? sTest.testContains();
? ? ? sTest.testIterator();
??
}
public void testForeachForSet(Student student) {
? ?//打印輸出,學(xué)生所選的課程
System.out.println("共選擇了:"+student.courses.size()+"課程");
? ? ? for(Course cr:student.courses) {
? ? ? System.out.println("選擇了課程:"+cr.id+":"+cr.name);
? ? ? }
}
//測(cè)試List的contains方法
public void testContains() {
//請(qǐng)輸入課程名稱
System.out.println("請(qǐng)輸入課程名稱:");
int id1=scanner.nextInt();
Course course2=new Course();
//創(chuàng)建一個(gè)新的課程對(duì)象,ID和名稱,與Course對(duì)象完全一樣
course2.id=id1;
System.out.println("創(chuàng)建課程對(duì)象編號(hào):"+course2.id);
System.out.println("備選課程中是否包含該課程:"+course2.id+","+courseToSelect.contains(course2));
if(courseToSelect.contains(course2)) {
System.out.println("課程:"+course2.id+"索引位置為:"+courseToSelect.indexOf(course2)+1);
}
}
}
2018-09-04
明白了,我在equals那里沒(méi)有改