我有兩個的ArrayList:有沒有比使用ArrayList更好的方法,所以我沒有得到IndexOutOfBounds異常?
ArrayList<String> libraries = new ArrayList<String>(2);
ArrayList<String> styles = new ArrayList<String>(2);
我有3個複選框組件。三個複選框應該向ArrayList添加或刪除字符串,但是當jqMobileChk被選中時會發生IndexOutOfBoundsException。
的三個複選框:
jqChk.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if(jqChk.isChecked()){
libraries.add(0,"<script src=\"http://code.jquery.com/jquery-1.8.2.min.js\"></script>\n");
}else if(!jqChk.isChecked()){
libraries.remove(0);
}
}
});
jqMobileChk.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if(jqMobileChk.isChecked()){
libraries.add(1,"<script src=\"http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.js\"></script>\n");
}else if(!jqMobileChk.isChecked()){
libraries.remove(1);
}
}
});
jqMobCSS.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if(jqMobCSS.isChecked()){
styles.add(0,"<link rel=\"stylesheet\" href=\"http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.css\" />\n");
}else if(!jqMobCSS.isChecked()){
styles.remove(0);
}
}
});
'新的ArrayList(2)'不*不*創建2種元素的ArrayList。它最初是空的 - 這是「內部」容量。同樣,'add/remove' *改變ArrayList的大小*。 ArrayList!=數組。 – 2013-03-22 23:18:04
不確定爲什麼這個問題被認爲不可能幫助未來的訪問者。我發現答案非常有用,並且可能會幫助其他人討論ArrayList的缺陷。瞭解Map對象類型也很重要。 +1花時間來解釋每個人的事情。 – RapsFan1981 2013-03-23 16:19:59
調試。這在編程中非常重要。 IndexOutOfBounds,NullReferenceException等等。這些都是由非常特殊的條件引起的。附上一個調試器,並看看。 *開發人員的工作是隔離出現這些問題的條件以解決問題。*現在,看看標題 - 是否真的會幫助任何人?不。現在,如果問題在*最小測試用例*中被隔離*,那麼也許。因爲它現在是..不。 – 2013-03-23 19:16:51