您的位置:首页 > 其它

List中一些知识(项目中有时候会碰到,于新手而言)

2016-07-31 21:50 253 查看
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.先总结几点,菜鸟总是要不断进步的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  指针 异常