大神們求解 下載的代碼怎么沒有點名哪里出錯但是運行出錯
package a;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
/**
?* 備選課程類
?* @author Administrator
?*
?*/
public class ListTest {
/**
* 用于存放備選課程的List
*/
public List coursesToSelect;
public ListTest() {
this.coursesToSelect = new ArrayList();//創(chuàng)建ListTest對象的同時并初始化coursesToSelect這個屬性
}
/**
* 用于往coursesToSelect中添加備選課程
*/
public void testAdd() {
//創(chuàng)建一個課程對象,并通過調(diào)用add方法,添加到備選課程List中
Course cr1 = new Course("1" , "數(shù)據(jù)結(jié)構(gòu)");
coursesToSelect.add(cr1);
Course temp = (Course) coursesToSelect.get(0);
//元素放入集合中得時候就會被忽略類型 ?把它當作object類型
//集合中的元素是object類型要轉(zhuǎn)化成Course類型
System.out.println("添加了課程:" + temp.id + ":" + temp.name);?
Course cr2 = new Course("2", "C語言");
coursesToSelect.add(0, cr2);
Course temp2 = (Course) coursesToSelect.get(0);//把0的位置給了cr2 把cr1擠到了1的位置
System.out.println("添加了課程:" + temp2.id + ":" + temp2.name);
coursesToSelect.add(cr1);
Course temp0 = (Course) coursesToSelect.get(2);
System.out.println("添加了課程:" + temp.id + ":" + temp.name);?
//以下方法會拋出數(shù)組下標越界異常
// Course cr3 = new Course("3", "test");
// coursesToSelect.add(4, cr3);
Course[] course = {new Course("3", "離散數(shù)學(xué)"), new Course("4", "匯編語言")};
coursesToSelect.addAll(Arrays.asList(course));
Course temp3 = (Course) coursesToSelect.get(3);
Course temp4 = (Course) coursesToSelect.get(4);
System.out.println("添加了兩門課程:" + temp3.id + ":" +?
temp3.name + ";" + temp4.id + ":" + temp4.name);
Course[] course2 = {new Course("5", "高等數(shù)學(xué)"), new Course("6", "大學(xué)英語")};
coursesToSelect.addAll(2, Arrays.asList(course2));
Course temp5 = (Course) coursesToSelect.get(2);
Course temp6 = (Course) coursesToSelect.get(3);
System.out.println("添加了兩門課程:" + temp5.id + ":" +?
temp5.name + ";" + temp6.id + ":" + temp6.name);
}
/**
* 取得List中的元素的方法
* @param args
*/
public void testGet() {
int size = coursesToSelect.size();
System.out.println("有如下課程待選:");
for(int i= 0 ; i < size; i++) {
Course cr = (Course) coursesToSelect.get(i);
System.out.println("課程:" + cr.id + ":" + cr.name);
}
}
/**
* 通過迭代器來遍歷List
* @param args
*/
public void testIterator() {
//通過集合的iterator方法,取得迭代器的實例
Iterator<Course> it = coursesToSelect.iterator();
System.out.println("有如下課程待選(通過迭代器訪問):");
while(it.hasNext()) {
Course cr = (Course)it.next();
System.out.println("課程:" + cr.id + ":" + cr.name);
}
}
/**
* 通過for each方法訪問集合元素
* @param args
*/
public void testForEach() {
System.out.println("有如下課程待選(通過for each訪問):");
for (Object obj : coursesToSelect) {//集合中的元素是object類型
Course cr = (Course) obj;
System.out.println("課程:" + cr.id + ":" + cr.name);
}
}
/**
* 修改List中的元素
* @param args
*/
public void testModify() {
coursesToSelect.set(4, new Course("7", "毛概"));
}
/**
* 刪除List中的元素
* @param args
*/
public void testRemove() {
// Course cr = (Course) coursesToSelect.get(4);
System.out.println("即將刪除4位置和5位置上的課程!");
Course[] courses = {(Course) coursesToSelect.get(4), (Course) coursesToSelect.get(5)};
coursesToSelect.removeAll(Arrays.asList(courses));
// coursesToSelect.remove(4);
System.out.println("成功刪除課程!");
testForEach();
}
/**
* 往List中添加一些奇怪的東西
* @param args
*/
public void testType() {
System.out.println("能否往List中添加一些奇怪的東西呢???");
coursesToSelect.add("我不是課程,我只是一個無辜的字符串!!");
}
public static void main( String[] args) {
ListTest lt = new ListTest();
lt.testAdd();
lt.testType();
lt.testForEach();
// lt.testGet();
// lt.testIterator();
// lt.testForEach();
// lt.testModify();
// lt.testForEach();
// lt.testRemove();
}
}
2016-10-24
如何改啊
2016-10-24
“我不是課程,我只是一個無辜的字符串“是你一個字符串,它不能強行轉(zhuǎn)化為Course類型。所以運行時,會提出異常。