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.先总结几点,菜鸟总是要不断进步的。