為什么獲取get[0]就正確,獲取get[1]就下標(biāo)越界,不是已經(jīng)添加了一個(gè)嗎,不就相當(dāng)于有兩個(gè)了嗎
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();
}
2016-12-20
我簡(jiǎn)單回答一下。
add()方法中的數(shù)字,指的是添加位置。
get()方法中的數(shù)字,指的是要調(diào)用的位置。
add()方法的使用。初次往里面添加的話,添加位置只能是0位置,0可以省略不寫的。 ?當(dāng)?shù)诙涡枰砑拥臅r(shí)候,有兩個(gè)添加位置,0位置和1位置。當(dāng)你添加到0位置的時(shí)候,也就是把原本0位置存在的屬性值,擠到了1位置。你也可以添加到1位置,這個(gè)時(shí)候1可以省略不寫。每一次的添加都是對(duì)位置的從新排序。 ? ? 當(dāng)你需要第三次添加的時(shí)候,有0位置,1位置,2位置這樣3個(gè)選擇。選擇最后一個(gè)位置的話,也就是2位置,2可以省略不寫。選擇1位置或者0位置就是把需要添加的屬性值插進(jìn)去,把原本存在的屬性值擠到下一位。 ? ? ? 上面所說的添加,指的是每次添加一個(gè)屬性值。
get()方法的使用。括號(hào)里面的數(shù)字是幾調(diào)用的就是幾號(hào)位置的屬性值。記住每一次添加都是對(duì)前面屬性值的從新排序,調(diào)用幾號(hào)位置,輸出的就是幾號(hào)位置的屬性值。
這樣應(yīng)該是簡(jiǎn)單易懂吧
26分鐘前
2016-10-28
Course co = new Course("1","java");
courSelect.add(co);
Course senm = (Course) courSelect.get(0);
這個(gè)get(1)會(huì)下標(biāo)越界,因?yàn)槟愦藭r(shí)只添加了一個(gè)元素。
Course se = new Course("0","sql");
courSelect.add(0, se);
Course sen = (Course) courSelect.get(0);
這個(gè)get(1)不會(huì)有問題,而且get(1)得出的結(jié)果是("1","java")。
寫了下標(biāo)0,不會(huì)把之前那個(gè)擠掉,會(huì)把之前的擠到下一個(gè)位置1上
2016-10-28
第一個(gè)get[0],第二個(gè)get[1]應(yīng)該不會(huì)報(bào)錯(cuò)吧,就是重復(fù)取出("1","java")。
2016-10-28
因?yàn)槟阆旅鎍dd進(jìn)去的時(shí)候,寫了下標(biāo)0,所以把之前那個(gè)擠掉了把