面试中被问到:若是一个数组中有重复元素,用什么方法能够去重?想了想貌似方法还很多,如今就总结一下。
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]
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
的功劳。java