俩个数组去重合并成一个数组
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 }
做一条有梦想的闲鱼