题目描述
一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。
1 import java.util.HashSet; 2 import java.util.Set; 3 4 /** 5 * 6 * @author gentleKay 7 * 题目描述 8 * 一个整型数组里除了两个数字之外,其他的数字都出现了两次。 9 * 请写程序找出这两个只出现一次的数字。 10 */ 11 12 //num1,num2分别为长度为1的数组。传出参数 13 //将num1[0],num2[0]设置为返回结果 14 15 public class Main39 { 16 17 public static void main(String[] args) { 18 // TODO Auto-generated method stub 19 int[] num1 = new int[1]; 20 int[] num2 = new int[1]; 21 int[] array = {2,4,3,6,3,2,5,5}; 22 Main39.FindNumsAppearOnce(array, num1, num2); 23 } 24 25 public static void FindNumsAppearOnce(int [] array,int num1[] , int num2[]) { 26 if (array.length < 2) { 27 return; 28 } 29 30 Set<Integer> set = new HashSet<>(); 31 for (int i=0;i<array.length;i++) { 32 if (!set.contains(array[i])) { 33 set.add(array[i]); 34 }else { 35 set.remove(array[i]); 36 } 37 } 38 39 Object[] num = set.toArray(); 40 num1[0] = (int) num[0]; 41 num2[0] = (int) num[1]; 42 System.out.println(num1[0]); 43 System.out.println(num2[0]); 44 } 45 46 47 /* 48 * [2,4,3,6,3,2,5,5] 49 * 对应输出应该为: 50 * "4,6" 51 */ 52 }