為什么我刪除位置2的元素是大數(shù)學(xué)不是線性數(shù)學(xué)?
package com.imooc;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
//備選課程類
public class ListTest {
//用于存放課程的書架
public List coursesToSelect;
public ListTest(){
this.coursesToSelect = new ArrayList();
}
//用于往課表里添加課程
public void testAdd(){
//創(chuàng)建課程對象,通過add方法添加課程到課程表里
Course cr1 = new Course("1","數(shù)據(jù)結(jié)構(gòu)");
coursesToSelect.add(cr1);
//
Course temp = (Course)coursesToSelect.get(0);
System.out.println("添加了課程:"+temp.getId() +":"+ temp.getName());
Course cr2 = new Course("2","C語言");
coursesToSelect.add(0, cr2);
Course temp2 = (Course)coursesToSelect.get(0);
System.out.println("添加了課程:"+temp2.getId() +":"+ temp2.getName());
coursesToSelect.add(cr1);
//
Course temp0 = (Course)coursesToSelect.get(2);
System.out.println("添加了課程:"+temp0.getId() +":"+ temp0.getName());
//注釋的方法會引起數(shù)組下標(biāo)越界異常
// Course cr3 = new Course("3","test");
// coursesToSelect.add(3, cr3);
Course[] cr3 = {new Course("3","離散數(shù)學(xué)"),new Course("4","數(shù)學(xué)")};
coursesToSelect.addAll(Arrays.asList(cr3));
Course temp3 = (Course)coursesToSelect.get(3);
Course temp4 = (Course)coursesToSelect.get(4);
System.out.println("添加了課程:"+temp3.getId() +":"+ temp3.getName()+
temp4.getId() +":"+ temp4.getName());
Course[] cr4 = {new Course("5","線性數(shù)學(xué)"),new Course("6","大數(shù)學(xué)")};
coursesToSelect.addAll(2, Arrays.asList(cr4));
Course temp5 = (Course)coursesToSelect.get(2);
Course temp6 = (Course)coursesToSelect.get(3);
System.out.println("添加了課程:"+temp5.getId() +":"+ temp5.getName()+
temp6.getId() +":"+ temp6.getName());
}
//通過for each方法訪問集合元素
public void testFof(){
System.out.println("有如下課程選擇通過for each訪問:");
for(Object obj : coursesToSelect){
Course cr = (Course) obj;
System.out.println("課程:"+cr.getId()+":"+cr.getName());
}
}
//刪除list中的元素
public void testRemove(){
// Course cr = (Course) coursesToSelect.get(4);
System.out.println("即將刪除4位置上的元素");
coursesToSelect.remove(4);
System.out.println("成功刪除");
testFof();
//通過removeAll方法刪除元素
Course[] courses = {(Course) coursesToSelect.remove(1)
,(Course) coursesToSelect.remove(2)};
coursesToSelect.remove(Arrays.asList(courses));
System.out.println("即將刪除1和2位置的元素");
testFof();
}
public static void main(String[] args) {
ListTest lt= new ListTest();
lt.testAdd();
// lt.testGet();
// lt.testIt();
// lt.testFof();
// lt.testModify();
lt.testFof();
lt.testRemove();
}
}
2016-03-20
數(shù)組排序是從0開始的,你刪除的2位置實際上是第三個數(shù)組元素,即大數(shù)學(xué)。
2016-03-20