1.有關list中報空指針異常的問題:
a.沒有對list進行初始化,系統沒有給list分配內存空間,此時對list進行操作(add,遍歷,.size())都會報空指針異常
List list = null;
list.size();
這樣就會java.lang.NullPointerException
b.進行了初始化,但是給list的值爲null,調用也會報空指針
List list = new ArrayList();
list = null;
list.size();
這樣也會java.lang.NullPointerException
c.所以在不確定list是否有值得情況而進行操作,最好在操作之前先判斷,若!list.isEmpty(),在進入操作。
2.list中進行去重的兩種方法
List list1 = new ArrayList();
List list2 = new ArrayList();
list1.add(1);
list1.add(2);
list1.add(3);
list1.add(4);
list1.add(1);
list1.add(4);
//第一種方法:
HashSet hs = new HashSet(list1);//去重完成
list1.clear();
list1.addAll(hs);
//第二種方法:
for(int i=0; i<list1.size(); i++){
Integer str = (Integer)list1.get(i); //獲取傳入集合對象的每一個元素
if(!list2.contains(str)){ //查看新集合中是否有指定的元素,沒有則加入
list2.add(str);
}
list2即爲去重後的新集合
3.在兩個list進行嵌套循環的時候,注意,在內循環中不要對外循環的list進行各種(add,remove等)操作,會破壞循環結構。對內循環自身的list進行操作後,一定要及時break;重新開始循環。
for(int i=0;i<li.size();i++){
for(int j= 0;j<lis.size();j++){ if((li.get(i).get("output_id")).equals((lis.get(j).get("output_id")))){
lis.remove(j);
break;
}
}
}
4.先總結幾點,菜鳥總是要不斷進步的。