課程
/后端開發(fā)
/Java
/Java入門第三季
add只能訪問已有數(shù)據(jù)的0、1 兩個位置為什么,index寫2不報錯?
2018-09-18
源自:Java入門第三季 4-4
正在回答
你看,原來couresToSlect只有0,1位,你這個時候加cr3到2的位置,講課里說了ArrayList()的數(shù)組長度會跟著你的加的值增大而增大,你加了cr3,這個時候ArrayList()的數(shù)組長度就會變成3,但你要是越過了第3位直接加在第四位也就是couresToSlect.add(3, cr3),中間空了一位,ArrayList()的數(shù)組長度將不會跟著改變,系統(tǒng)也就會報錯。注意?。。。翰贿^這都是幾年前的視頻了,現(xiàn)在的jdk版本中已經(jīng)可以這樣跳著加數(shù)組了,你可以試著在你的myeclipse上打一下這個代碼,運行已經(jīng)不會報錯了,會直接加長ArrayList()的數(shù)組長度到你指定的地方
慕桂英9243443 提問者
不會報錯 但你運行一下就錯了
不好意思,剛剛說錯了一個地方,現(xiàn)在的jdk也不可以跳著加,不好意思 搞錯了 剛剛說完特意查了下,其它說的都是對的
其實就是視頻里的程序
package com.imooc.collection;
import java.nio.charset.MalformedInputException;
import java.util.ArrayList;
import java.util.List;
/*
?* 備選課程類;
?*/
public class ListTest {
*用于存放備選課程的List?
*/
public List couresToSlect;
public ListTest() {
// TODO Auto-generated constructor stub
this.couresToSlect=new ArrayList();
}
* 用于往courseToSelect中添加備選課程
public void testAdd() {
// 創(chuàng)建一個課程對象,并通過調(diào)用 ArrayList的add方法,添加到備選課程list中
Course cr1= new Course("1", "數(shù)據(jù)結(jié)構(gòu)");
couresToSlect.add(cr1);
//通過 ArrayList的get方法,讀取list中第一個元素,取出需要類型轉(zhuǎn)換;
Course temp =(Course) couresToSlect.get(0);
System.out.println("添加了課程:"+temp.id+":"+temp.name);
Course cr2 =new Course("2", "C語言");
couresToSlect.add(0, cr2);//指定位置插入list,cr1擠到1位置;
Course temp2 =(Course) couresToSlect.get(0);
System.out.println("添加了課程:"+temp2.id+":"+temp2.name);
Course cr3 =new Course("3", "test");
couresToSlect.add(2, cr3);//能訪問只是已有數(shù)據(jù)位置0、1并插入數(shù)據(jù),為什么這里填2不會報錯?
}?
public static void main(String[] args) {
ListTest lt =new ListTest();
lt.testAdd();
程序不貼出來沒法判斷啊。
舉報
Java中你必須懂得常用技能,不容錯過的精彩,快來加入吧
2 回答數(shù)組越界問題
1 回答請問我這個為啥會報越界異常呢
2 回答數(shù)組下標(biāo)越界
2 回答越界該如何處理
1 回答為何會越界異常
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2018-09-25
你看,原來couresToSlect只有0,1位,你這個時候加cr3到2的位置,講課里說了ArrayList()的數(shù)組長度會跟著你的加的值增大而增大,你加了cr3,這個時候ArrayList()的數(shù)組長度就會變成3,但你要是越過了第3位直接加在第四位也就是couresToSlect.add(3, cr3),中間空了一位,ArrayList()的數(shù)組長度將不會跟著改變,系統(tǒng)也就會報錯。注意?。。。翰贿^這都是幾年前的視頻了,現(xiàn)在的jdk版本中已經(jīng)可以這樣跳著加數(shù)組了,你可以試著在你的myeclipse上打一下這個代碼,運行已經(jīng)不會報錯了,會直接加長ArrayList()的數(shù)組長度到你指定的地方
2019-03-09
不會報錯 但你運行一下就錯了
2018-09-25
不好意思,剛剛說錯了一個地方,現(xiàn)在的jdk也不可以跳著加,不好意思 搞錯了 剛剛說完特意查了下,其它說的都是對的
2018-09-19
其實就是視頻里的程序
package com.imooc.collection;
import java.nio.charset.MalformedInputException;
import java.util.ArrayList;
import java.util.List;
/*
?* 備選課程類;
?*/
public class ListTest {
/*
*用于存放備選課程的List?
*/
public List couresToSlect;
public ListTest() {
// TODO Auto-generated constructor stub
this.couresToSlect=new ArrayList();
}
/*
* 用于往courseToSelect中添加備選課程
*/
public void testAdd() {
// 創(chuàng)建一個課程對象,并通過調(diào)用 ArrayList的add方法,添加到備選課程list中
Course cr1= new Course("1", "數(shù)據(jù)結(jié)構(gòu)");
couresToSlect.add(cr1);
//通過 ArrayList的get方法,讀取list中第一個元素,取出需要類型轉(zhuǎn)換;
Course temp =(Course) couresToSlect.get(0);
System.out.println("添加了課程:"+temp.id+":"+temp.name);
Course cr2 =new Course("2", "C語言");
couresToSlect.add(0, cr2);//指定位置插入list,cr1擠到1位置;
Course temp2 =(Course) couresToSlect.get(0);
System.out.println("添加了課程:"+temp2.id+":"+temp2.name);
Course cr3 =new Course("3", "test");
couresToSlect.add(2, cr3);//能訪問只是已有數(shù)據(jù)位置0、1并插入數(shù)據(jù),為什么這里填2不會報錯?
}?
public static void main(String[] args) {
ListTest lt =new ListTest();
lt.testAdd();
}
}
2018-09-19
程序不貼出來沒法判斷啊。