问题描述:
给出10个数,显示互不相同的数的数目,并以输入的顺序显示这些数字以一个空格分隔(即一个数出现多次,也仅显示一次。
输入样例:1 2 3 2 1 6 3 4 5 2
输出样例:
6
1 2 3 6 4 5
思路:可利用LinkedHashMap去重并保留原有顺序。
代码如下:
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Scanner;
public class Solution{
public static void main(String[] args) {
Scanner s=new Scanner(System.in);
Map<Integer,Integer>mp = new LinkedHashMap<Integer, Integer>();
int data[]=new int[10];
System.out.print("Enter 10 numbers: ");
for(int i=0;i<10;i++) {
data[i]=s.nextInt();
mp.put(data[i], 1);
}
System.out.println("The number of distinct numbers is "+mp.size());
System.out.print("The distinct numbers are: ");
for(Map.Entry<Integer, Integer>entry:mp.entrySet()) {
System.out.print(entry.getKey()+" ");
}
s.close();
}
}