数组中只出现一次的数字

题目描述

一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。
 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 }
原文地址:https://www.cnblogs.com/strive-19970713/p/11172725.html