qq_33398607
deantzzz
采纳率50%
2018-12-13 09:29

数组去除重复元素方法

已采纳

一个去除重复元素的方法

    /**
     * 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条回答

  • qq_33398607 deantzzz 3年前

    最后修改成了这样,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;
        }
    
    点赞 评论 复制链接分享
  • u013025992 gaga456789 3年前

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

    点赞 评论 复制链接分享

相关推荐