我们经常会遇到对数组中元素去重的问题:
我 之前的思考方式就是:遍历整个数组中的元素,在对每个元素进行比较,将没有重复的元素存入到另外一个数组当中,而且也不能确定数组的长度,定义过长,造成资源浪费。这种方式极为不好。
学习集合后,我们知道有些集合是不可以存储重复元素的,比如: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]+" ");
- }
- }
- }
复制代码 |