黑马程序员技术交流社区
标题:
通过集合的方式去除数组中的重复元素
[打印本页]
作者:
小川行
时间:
2015-3-24 09:49
标题:
通过集合的方式去除数组中的重复元素
我们经常会遇到对数组中元素去重的问题:
我 之前的思考方式就是:遍历整个数组中的元素,在对每个元素进行比较,将没有重复的元素存入到另外一个数组当中,而且也不能确定数组的长度,定义过长,造成资源浪费。这种方式极为不好。
学习集合后,我们知道有些集合是不可以存储重复元素的,比如: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]+" ");
}
}
}
复制代码
作者:
daveyang
时间:
2015-3-24 09:58
利用已有方法的不重复特点去重是比较简单,但是一个简单的算法用到太多的工具感觉不合适。但是从练习新方法还是挺好的
作者:
doomsday
时间:
2015-3-24 11:26
思路很重要
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2