deantzzz
2018-12-13 09:29
采纳率: 50%
浏览 657
已采纳

数组去除重复元素方法

一个去除重复元素的方法

    /**
     * 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]

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • deantzzz 2018-12-14 08:34
    已采纳

    最后修改成了这样,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;
        }
    
    打赏 评论
  • gaga456789 2018-12-13 09:40

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

    打赏 评论

相关推荐 更多相似问题