面试中被问到:如果一个数组中有重复元素,用什么方法可以去重?想了想貌似方法还不少,现在就总结一下。
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
的功劳。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。