为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我删除位置2的元素是大数学不是线性数学?

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(){

//创建课程对象,通过add方法添加课程到课程表里

Course cr1 = new Course("1","数据结构");

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());

//注释的方法会引起数组下标越界异常

// Course cr3 = new Course("3","test");

// coursesToSelect.add(3, cr3);

Course[] cr3 = {new Course("3","离散数学"),new Course("4","数学")};

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","线性数学"),new Course("6","大数学")};

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();

}

}


正在回答

2 回答

数组排序是从0开始的,你删除的2位置实际上是第三个数组元素,即大数学。

0 回复 有任何疑惑可以回复我~
#1

yL_human 提问者

我已经解决了,不过也是谢谢
2016-03-21 回复 有任何疑惑可以回复我~

http://img1.sycdn.imooc.com//56ee7b500001cd3104190147.jpg这应该是get()吧!

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么我删除位置2的元素是大数学不是线性数学?

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号