public class Demo3 {
     public static void main(String[] args) {
int [] arr=new int[]{1,1,1,2,4,3,3};
String result = " ";
for(int i=0;i<arr.length-1;i++){
int k=0;
         for(int j=0;j<arr.length;j++){
         if(arr[i]==arr[j]) {
         k++;
         }
         }
         if(k%2!=0){
          result+=arr[i];
         }
}
System.out.println(result);
}
}
我输出的是11124.如何输出124

解决方案 »

  1.   

    public class Demo3 {
    public static void main(String[] args) {
    int [] arr=new int[]{1,1,1,2,4,3,3};
    Map<Integer,Integer> result = new HashMap<Integer,Integer>();
    String resultStr = "";
    for(int i=0;i<arr.length-1;i++){
    Integer tmp = Integer.valueOf(i);
    if(result.containsKey(tmp)){
    int count = result.get(tmp).intValue();
    count++;
    result.put(tmp, Integer.valueOf(count));
    }
    else{
    result.put(tmp, 1);
    }
    }
    Iterator iterator = result.keySet().iterator();
    while(iterator.hasNext()){
    int key = ((Integer)iterator.next());
    int count = result.get(key).intValue();
    if(count%2!=0){
    resultStr+=key+" ";
    }
    }
    System.out.println(resultStr);
    }
    }用hashMap,key存数组中数,value存出现次数
      

  2.   

    学过无序集合HashSet吗?
      

  3.   

    int[] arr = new int[] { 1, 1, 1, 2, 4, 3, 3 };
    Map<Integer, Integer> tempArr = new HashMap<Integer, Integer>();
    for (int i = arr.length-1; i>=0; i--) {
    int a = arr[i];
    if (tempArr.get(a) != null) {
    tempArr.put(a, tempArr.get(a) + 1);
    } else {
    tempArr.put(a, 1);
    }
    }
    for (Map.Entry<Integer, Integer> entry : tempArr.entrySet()) {
    if (entry.getValue() % 2 != 0) {
    System.out.println(entry.getKey());
    }
    }
      

  4.   

    我来一个不需要记录元素出现具体次数的方式。int [] arr=new int[]{1,1,1,2,4,3,3};
    HashSet<Integer> set = new HashSet<Integer>();
    for (int i = 0; i < arr.length; i++)
    {
    Integer arri = new Integer(arr[i]);
    if(set.contains(arri)){
    //数组中的数值在set中存在,如果加上这一个,就是偶数了,所以,可以移除
    set.remove(arri);
    }else {
    //从数组中取得的数值在set中不存在,可能是没出现过,也可能是出现过偶数次被移除了
    set.add(arri);
    }
    }
                    //最终还保留在set中的数值,一定是出现了奇数次
    for (Iterator<Integer> iterator = set.iterator(); iterator.hasNext();)
    {
    Integer integer = iterator.next();
    System.out.println(integer);
    }