如何将数组中的元素去重?
面试时突然被人问到这个问题,当场懵逼,本人总结了基本常用的三种方式
如这个数组 Integer[] arr={1,2,3,4,5,2,3};
1.先将数组转为集合,然后利用distinct方法去重
List<Integer> integers = Arrays.asList(arr);
List<Integer> collect = integers.stream().distinct().collect(Collectors.toList());
2.利用hashset集合不可重复性去重
Set<Integer> obj= new HashSet<>();
for (Integer integer : arr) {
obj.add(integer);
}
System.out.println(obj.toString());
3.利用list.contains方法
List list = new ArrayList();
//遍历数组往集合里存元素
for(int i=0;i<arr.length;i++){
//如果集合里面没有相同的元素才往里存
if(!list.contains(arr[i])){
list.add(arr[i]);
}
}
//toArray()方法会返回一个包含集合所有元素的Object类型数组
Object[] newArr = list.toArray();
//遍历输出一下测试是否有效
for(int i=0;i<newArr.length;i++){
System.out.print(" "+newArr[i]);
}
如果这篇文章帮助到你,那就点个赞再走呗~