俩个数组去重合并成一个数组

 1 import java.util.*;
 2 public class Merge {
 3     public static void main(String[] args) {
 4         int [] a = {1, 2, 7, 4, 4, 2};
 5         int [] b = {1, 5, 5, 6};
 6         int [] c = concat(a, b);
 7         setDistinct(c);
 8         listDistinct(c);
 9         mapDistinct(c);
10     }
11     //合并数组
12     public static int[] concat(int [] first, int[] second) {
13         int [] result = Arrays.copyOf(first, first.length + second.length);
14         System.arraycopy(second, 0, result, first.length, second.length);
15         return result;
16     }
17     //数组去重
18   //第一种:使用set集合无序不重复
19     public static void setDistinct(int[] arr) {
20         HashSet<Integer> set = new HashSet<Integer>();
21         for (Integer i : arr) {
22             set.add(i);
23         }
24         Integer[] newArr = set.toArray(new Integer[1]);
25         System.out.println(Arrays.toString(newArr));
26     }
27     //第二种:使用list集合,判断元素不存在再插入
28     public static void listDistinct(int [] arr) {
29         List<Integer> list = new ArrayList<Integer>();
30         for (int i = 0; i < arr.length; i++) {
31             if (!list.contains(arr[i])) {
32                 list.add(arr[i]);
33             }
34         }
35         Integer[] newArrStr = list.toArray(new Integer[1]);
36         System.out.println(Arrays.toString(newArrStr));
37     }
38     //第三种:使用Map集合,键唯一
39     public static void mapDistinct(int [] arr) {
40         Map<Integer, Object> map = new HashMap<Integer, Object>();
41         for (Integer i : arr) {
42             map.put(i, i);
43         }
44         Integer[] newArrStr = map.keySet().toArray(new Integer[1]);
45         System.out.println(Arrays.toString(newArrStr));
46     }
47 }

 

posted @ 2019-08-03 15:48  sugar黑人  阅读(2809)  评论(0编辑  收藏  举报