数组去除重复元素方法

一个去除重复元素的方法

    /**
     * remove list duplicate element
     * @param list
     */
    public static List removeListDuplicateElement(List list) {
        if (list.size() > 1) {
            for (int i = 0; i < list.size() - 1; i++) {
                for (int j = list.size() - 1; j > i; j--) {
                    if (list.get(j).equals(list.get(i))) {
                        list.remove(j);
                    }
                }
            }
        }
        return list;
    }

for (int j = list.size() - 1; j > i; j--)这里报空指针异常

java.lang.NullPointerException: null

at com.dataAnalysis.utils.ListUtils.removeListDuplicateElement(ListUtils.java:14) ~[classes/:na]

0

2个回答

最后修改成了这样,new一个新的list,迭代待处理数组,若newList中不包含此元素就add,最后return的数组重复元素只保留一个

    public static List removeListDuplicateElement(List list) {
        Iterator iterator = list.iterator();
        List newList = new ArrayList();
        while (iterator.hasNext()){
            Object o = iterator.next();
                if(!newList.contains(o)){
                    newList.add(o);
                }
            }
        return newList;
    }
0

list.remove(j); 之后 记得把j也减一,不然超出了数据长度会报空指针

0
qq_33398607
deantzzz j在for循环时候减了,还要在里面再减吗
6 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!