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

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

為什么獲取get[0]就正確,獲取get[1]就下標越界,不是已經添加了一個嗎,不就相當于有兩個了嗎

public List courSelect;

public ListTest(){

this.courSelect = new ArrayList();

}

public void testAdd(){

Course co = new Course("1","java");

courSelect.add(co);

Course senm = (Course) courSelect.get(0);

System.out.println(senm.id

+senm.name);

Course se = new Course("0","sql");

courSelect.add(0, se);

Course sen = (Course) courSelect.get(0);

System.out.println(sen.id+ " : " +sen.name);

}

public static void main(String[] args){

ListTest li = new ListTest();

li.testAdd();

}


正在回答

4 回答

我簡單回答一下。

add()方法中的數字,指的是添加位置。

get()方法中的數字,指的是要調用的位置。


add()方法的使用。初次往里面添加的話,添加位置只能是0位置,0可以省略不寫的。 ?當第二次需要添加的時候,有兩個添加位置,0位置和1位置。當你添加到0位置的時候,也就是把原本0位置存在的屬性值,擠到了1位置。你也可以添加到1位置,這個時候1可以省略不寫。每一次的添加都是對位置的從新排序。 ? ? 當你需要第三次添加的時候,有0位置,1位置,2位置這樣3個選擇。選擇最后一個位置的話,也就是2位置,2可以省略不寫。選擇1位置或者0位置就是把需要添加的屬性值插進去,把原本存在的屬性值擠到下一位。 ? ? ? 上面所說的添加,指的是每次添加一個屬性值。

get()方法的使用。括號里面的數字是幾調用的就是幾號位置的屬性值。記住每一次添加都是對前面屬性值的從新排序,調用幾號位置,輸出的就是幾號位置的屬性值。

這樣應該是簡單易懂吧

26分鐘前



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

Course co = new Course("1","java");

courSelect.add(co);

Course senm = (Course) courSelect.get(0);

這個get(1)會下標越界,因為你此時只添加了一個元素。


Course se = new Course("0","sql");

courSelect.add(0, se);

Course sen = (Course) courSelect.get(0);

這個get(1)不會有問題,而且get(1)得出的結果是("1","java")。

寫了下標0,不會把之前那個擠掉,會把之前的擠到下一個位置1上

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

weixin_慕萊塢4034668 提問者

擠到下一個位置,那之前的寫成get[1]不就可以嗎,為什么報錯,是因為還沒執行下面,所以上面先寫成get[1]的話就下標越界
2016-10-28 回復 有任何疑惑可以回復我~
#2

Sophia3119007 回復 weixin_慕萊塢4034668 提問者

嗯嗯,第一個寫成get[1]肯定會越界的,因為下標是從0開始的。
2016-10-28 回復 有任何疑惑可以回復我~

第一個get[0],第二個get[1]應該不會報錯吧,就是重復取出("1","java")。

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

weixin_慕萊塢4034668 提問者

為什么重復取("1","java")這個呢,不應該是get[0]取下面的,get[1]取這個嗎("1","java")
2016-10-28 回復 有任何疑惑可以回復我~
#2

Sophia3119007 回復 weixin_慕萊塢4034668 提問者

嗯嗯,現在你這個程序應該輸入的是("1","java"),("0","sql");我的意思是如果第二個get[0]換乘get[1]的話,應該輸出的是("1","java"),("1","java"),應該報越界錯誤吧。
2016-10-28 回復 有任何疑惑可以回復我~
#3

Sophia3119007 回復 weixin_慕萊塢4034668 提問者

不好意思,上一條回復最后寫錯了,應該不會報越界錯誤吧!
2016-10-28 回復 有任何疑惑可以回復我~

因為你下面add進去的時候,寫了下標0,所以把之前那個擠掉了把

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

weixin_慕萊塢4034668 提問者

不是吧,擠掉的話我之前的為什么還能輸出出來呢
2016-10-28 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

為什么獲取get[0]就正確,獲取get[1]就下標越界,不是已經添加了一個嗎,不就相當于有兩個了嗎

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

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

幫助反饋 APP下載

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

公眾號

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