2
import java.util.*;
public class RemoveDuplicates {

private static Scanner ak;

public static void main(String[] args) {
    ak = new Scanner(System.in);
    int k=0;
    System.out.println("enter the size of the array");
    int n=ak.nextInt();
    int a[]=new int[n];
    for (int i=0;i<n;i++){
        System.out.println("enter element "+(i+1));
        a[i]=ak.nextInt();
    }
    Arrays.toString(a);
    HashMap<Integer,Integer> h=new HashMap<Integer, Integer>();
    for (int i=0;i<n;i++){
        if ((h.containsKey(a[i]))){
            k=h.get(a[i]);
            h.put(a[i],k+1);
        }
        else{
            h.put(a[i], 1);
        }
    }

    System.out.print(h);
    Set <Map.Entry<Integer, Integer>> c=h.entrySet();

    System.out.print(c);
    System.out.println("these are the duplicates removed elements  ");

    Iterator<Map.Entry<Integer, Integer>> i=c.iterator();
    while (i.hasNext()){
        if (i.next().getValue()==1)
        System.out.println(i.next().getKey());

    }
  }
}

HashMap を使用して配列から重複を削除するプログラムを作成しましたが、正しい出力を印刷できません。入力を size=4 として入力し、配列入力を {1,1,2,3} として入力すると、イテレータは「3」のみを出力しますが、「2,3」を出力する必要 があります。

4

2 に答える 2