由于队列提供的contains()还有remove(Obejct o)方法使得问题简单许多了

import java.util.*;
public class Solution {
    public void FindNumsAppearOnce(int [] array,int num1[] , int num2[]) {
        Deque<Integer> q = new LinkedList<>();
        for(int i=0;i<array.length;i++){
            if(q.contains(array[i])){
                q.remove(array[i]);
            }else{
                q.push(array[i]);
            }
        }
        num1[0]=q.poll();
        num2[0]= q.poll();
    }
}