数组去重复,{4,2,4,6,1,2,4,7,8}

数组去重复,例如: 原始数组是{4,2,4,6,1,2,4,7,8},得到结果{4,2,6,1,7,8}
一种容易理解的方法

【set是可以去重,但是HashSet会将数据随机输出,TreeSet会把数据排序后输出,都会打乱原有的顺序】

思想:拿第1个与第2个、第3个、第4个、第5个、、、、、、比较,如果重复,就从list里去掉,得到新的list

再拿新的list的第2个与第3个、第4个、第5个、、、、、、比较,如果重复,就从list里去掉,得到新的list。

、、、、、、

就得到了不重复的了,

public static void main(String[] args) {
  List<Integer> all = new ArrayList<>();
  int[] num = { 4, 2, 4, 6, 1, 2, 4, 7, 8 };
  for (int i = 0; i < num.length; i++) {
   all.add(num[i]);
  }
  for (int i = 0; i < all.size(); i++) {
   int x = all.get(i);
   for (int j = 1 + i; j < all.size(); j++) {
    if (x == all.get(j)) {
     all.remove(j);
    }
   }
  }
  System.out.println(all);
 }

还有个简洁明了的方法,利用list的 boolean contains ()方法

public static void main(String[] args) {
        int[] arr = { 4, 2, 4, 6, 1, 2, 4, 7, 8 };
        //创建对象
        //这里没有泛型,若果有泛型则报错
        List data = new ArrayList();
        //增强for
        for (int num : arr) {
            if (!data.contains(num)) {
                data.add(num);
            }
        }
        //打印数组
        System.out.println(data);
    }

你可能感兴趣的:(数组去重复,{4,2,4,6,1,2,4,7,8})