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

 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 }

 

转载于:https://www.cnblogs.com/sugar38/p/11295065.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值