1
面试中被问到:如果一个数组中有重复元素,用什么方法可以去重?想了想貌似方法还不少,现在就总结一下。

1. 用List集合实现

public static void main(String[] args) {

    int[] intArr2 =  {2,4,5,6,1,1,2,6,7};
    List<Integer> list = new ArrayList<>();
    for (int i : intArr) {
        if(!list.contains(i)) {
            list.add(i);
        }
    }
    System.out.println(list.toString());
}
//输出结果
[2, 4, 5, 6, 1, 7]

2. 用Set集合实现

public static void main(String[] args) {

    Integer[] intArr =  {2,4,5,6,1,1,2,6,7};
    int[] intArr2 =  {2,4,5,6,1,1,2,6,7};
    
    // 数组类型为包装类类型
    Set<Integer> set = new TreeSet<>(Arrays.asList(intArr));
    for (int i : intArr) {
        set.add(i);
    }
    System.out.println(set.toString());
    // 数组类型为基本数据类型
    Set<Integer> set2 = new TreeSet<>();
    for (int i : intArr2) {
        set2.add(i);
    }
    System.out.println(set2.toString());
}
//输出结果
[1, 2, 4, 5, 6, 7]
[1, 2, 4, 5, 6, 7]

  可以看到set不进去除了重复数据,而且还将数据进行了排序。而这一切都是treeset的功劳。


wo0o0o0o0
53 声望2 粉丝