当前位置: 代码迷 >> Java相关 >> 请教关于一个输出数字程序的算法
  详细解决方案

请教关于一个输出数字程序的算法

热度:108   发布时间:2011-09-20 23:20:49.0
请教关于一个输出数字程序的算法
要求是输入10个数字,存放在数组里面,然后要求输出互不相同的数字,也就是说,如果一个数字出现多次,那么只打印一次。
现在不知道这个程序该怎么搞,没点思路呀……请高手帮忙指点以下。
谢谢了~
----------------解决方案--------------------------------------------------------
咋没人理我呢……
----------------解决方案--------------------------------------------------------
import java.util.HashMap;
import java.util.Scanner;
import java.util.Set;

public class Test {
    public static void main(String[] args) {
        HashMap<Integer,Integer> map = new HashMap<Integer, Integer>();
        
        Scanner sc = new Scanner(System.in);
        for(int i=0;i<10;i++){
            int a = sc.nextInt();
            if(map.get(a)==null){
                map.put(a, 1);
            }else {
                map.put(a, map.get(a)+1);
            }
        }
        
        Set<Integer> k = map.keySet();
        int[] bb=new int[k.size()];
        int t=0;
        for (Integer i : k) {
            bb[t++]=i;
        }
        for (int i : bb) {
            System.out.println(i);
        }
    }
}
----------------解决方案--------------------------------------------------------
回复 3楼 husiwen
谢谢,我研究一下~~不好意思才看到。
----------------解决方案--------------------------------------------------------
提示: 作者被禁止或删除 内容自动屏蔽
2011-09-25 06:10:36
gwl3323405

等 级:论坛游民
帖 子:22
专家分:46
注 册:2010-10-31
  得分:0 
蝙蝠侠的方法比较聪明,但在大数据量时不够保险,因为HashSet是无序的,建议TreeSet,那么这样写:
程序代码:
int[] ints = new int[]{5,5,4,4,3,3,2,2,1,1};
        TreeSet<Integer> ts=new TreeSet<Integer>();
        for(int i = 0; i < ints.length; i ++){
            ts.add(ints[i]);
        }
        System.out.println(ts);

----------------解决方案--------------------------------------------------------
  相关解决方案