亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

報Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 4, Size: 4錯誤是什么原因

我照著打的,不知道啥問題,求大神解答

正在回答

4 回答

越界了 ? 仔細對比一下 ?改一改 ? ? 視頻中 ?老師動作太快 ? 沒跟上。。。。仔細看看吧 ? 有地方是原來的代碼

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

weibo_愛吃蔬菜的兔八哥_04192614 提問者

非常感謝!
2016-11-20 回復 有任何疑惑可以回復我~

沒實例化吧

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

?Course[] course={new Course("3","離散數學"),new Course("4","匯編語言")};

? ?coursesToSelect.addAll(Arrays.asList(course));

? ?Course temp3=(Course) coursesToSelect.get(2);

? ?Course temp4=(Course) coursesToSelect.get(3);

? ?//System.out.println("添加了兩個課程:"+temp3.id+":"+temp3.name+","+temp4.id+":"+temp4.name);


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

package com.imooc.map_demo;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;

public class SetTest {

?? ?public List<Course> coursesToSelect;
?? ?
?? ?public SetTest(){
?? ??? ?coursesToSelect = new ArrayList<Course>();
?? ?}
?? ?
?? ?
?? ? /**
???? * 用于往courseToSelect中添加備選課程
???? */
??? public void testAdd(){
?? ??? ?//創建一個課程對象,通過調用add方法,添加到備選課程list中
?? ??? ?Course cr1=new Course("1","數據結構");
?? ??? ?coursesToSelect.add(cr1);
?? ??? ?Course temp=(Course) coursesToSelect.get(0);
?? ??? ?//System.out.println("添加了課程:"+temp.id+":"+temp.name);
?? ??? ?
?? ??? ?Course cr2=new Course("2","C語言");
?? ??? ?coursesToSelect.add(0, cr2);
?? ??? ?Course temp2=(Course) coursesToSelect.get(0);
?? ??? ?//System.out.println("添加了課程:"+temp2.id+":"+temp2.name);
?? ??? ?
?? ??? ?
//?? ??? ?coursesToSelect.add(cr1);
//?? ??? ?Course temp0=(Course) coursesToSelect.get(2);
//?? ??? ?System.out.println("添加了課程:"+temp.id+":"+temp.name);
?? ??? ?//以下方法會拋出數組下標越界異常
//?? ??? ?Course cr3=new Course("3","test");
//?? ??? ?coursesToSelect.add(4, cr3);
?? ??? ?
?? ??? ?Course[] course={new Course("3","離散數學"),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","高等數學"),new Course("6","大學英語")};
????????? 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);
??? }
?? ?
??? /**
???? * 通過for each 方法訪問集合元素
???? * @param args
???? */
??? public void testForEach(){
?? ??? ?System.out.println("有如下課程待選(通過for each訪問):");
?? ??? ?for(Object obj:coursesToSelect){
?? ??? ??? ?Course cr=(Course) obj;
?? ??? ??? ?System.out.println("課程:"+cr.id+":"+cr.name);
?? ??? ?}
??? }
?? ?
?? ?public static void main(String[] args) {
?? ??? ?SetTest st=new SetTest();
?? ??? ?st.testAdd();
?? ??? ?st.testForEach();
?? ??? ?//創建一個學生對象
?? ??? ?Student student =new Student("1","小明");
?? ??? ?System.out.println("歡迎學生:"+student.name+"選課!");
?? ??? ?//創建一個scanner對象,用來接收從鍵盤輸入的ID
?? ??? ?
?? ??? ?Scanner console=new Scanner(System.in);
?? ??? ?
?? ??? ?for(int i=0;i<3;i++){
?? ??? ??? ?System.out.println("請輸入課程ID");
?? ??? ??? ?String courseId=console.next();
?? ??? ??? ?for(Course cr:st.coursesToSelect){
?? ??? ??? ??? ?if(cr.id.equals(courseId)){
?? ??? ??? ??? ??? ?student.courses.add(cr);
?? ??? ??? ??? ?}
?? ??? ??? ?}
?? ??? ?}
?? ??? ?st.testForEachForSet(student);
?? ?}
?
?? ?public void testForEachForSet(Student student){
?? ??? ?//打印輸出,學生所選的課程
?? ??? ??? ??? ?for(Course cr:student.courses){
?? ??? ??? ??? ??? ?System.out.println("選擇了課程:"+cr.id+":"+cr.name);
?? ??? ??? ??? ?}
?? ?}
?? ?
}


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

舉報

0/150
提交
取消

報Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 4, Size: 4錯誤是什么原因

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號