猿问

这个理解不了

package collection_map;

import java.util.ArrayList;

import java.util.List;

//备选课程类

public class ListTest {

//用于存放备选课程的List

  public List coursesToSelect;

  

  public ListTest(){

  

  this.coursesToSelect=new ArrayList();

  

  }

  //用于往coursesToSelect中添加备选课程

  public void testAdd(){

  //创建一个课程对象,并通过调用add方法,添加到备选课程List中

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

  coursesToSelect.add(cr1);

  Course temp=(Course)coursesToSelect.get(0);//0是因为,List与数组一样,起始位置也是0

  //又因为对象存入集合都会变成object类型,取出时需要类型转换,这里的(Course)就是强制类型转换

  System.out.println("添加了课程"+temp.id+":"+temp.name);

  

  

  Course cr2=new Course("2","C语言");

  coursesToSelect.add(0,cr2);//在0位置添加一个cr2,之前在0位置的cr1自动被顶到了1的位置

  Course temp2=(Course)coursesToSelect.get(0);

  System.out.println("添加了课程"+temp2.id+":"+temp2.name);

  

  //以下方法会抛出数组越界异常

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

//courseToSelect.add(4,cr3);  

  }

  

  public static void main(String[] args) {

ListTest lt=new ListTest();

lt.testAdd();

}

}

运行结果为

添加了课程1:数据结构

添加了课程2:C语言

搞不懂在0位置添加一个cr2,之前在0位置的cr1自动被顶到了1的位置,可之前的那段代码还是get(0)啊,难道说cr1被顶到了1,那么get(0)也会自动默认变成get(1)么

还有就是既然已经实例化了一个cr1,为什么在强制转换的时候还要弄一个temp出来

慕工程6005648
浏览 1331回答 1
1回答
随时随地看视频慕课网APP

相关分类

Java
我要回答