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

这个理解不了

这个理解不了

慕工程6005648 2016-11-14 18:28:40
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出来
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 1326 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信