| 我们经常会遇到对数组中元素去重的问题: 我 之前的思考方式就是:遍历整个数组中的元素,在对每个元素进行比较,将没有重复的元素存入到另外一个数组当中,而且也不能确定数组的长度,定义过长,造成资源浪费。这种方式极为不好。
 学习集合后,我们知道有些集合是不可以存储重复元素的,比如:HashSet、TreeSet、HashMap等。利用这一点我们就可以将重复的元素去掉。以下是我使用Map集合来去除集合中的重复元素,感觉挺方便的。
 
 复制代码public class QuChong {
        public static void main(String[] args) {
                int[] arr={4,3,4,6,1,3,4,7,8};
                Map<Integer,Integer> m=new HashMap<Integer, Integer>();
                ArrayList<Integer> arr1=new ArrayList<Integer>();
                for (int i = 0; i < arr.length; i++) {
                        int j = arr[i];
                        if(m.get(j)==null){//判断Map集合中是否为null,及判断Map集合中是否存在这个元素
                                arr1.add(j);//将不重复的数据存入到ArrayList集合当中
                                m.put( arr[i], 1);//如果Map集合中没有这个元素,则将这个arr[i]作为键,值设置为1存入到Map集合中
                        }        
                }
                //以下代码是将ArrayList集合中的数据存到一个新的数组中,并打印
                int len=arr1.size();
                int [] arr2=new int[len];        
                for(int i=0;i<len;i++){
                        arr2[i]=arr1.get(i);
                        System.out.print(arr2[i]+" ");
                }        
        }
}
 |