List中一些知識(項目中有時候會碰到,於新手而言)

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.先總結幾點,菜鳥總是要不斷進步的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章