去重复数据(JAVA)

来源:互联网 发布:g71格式编程 编辑:程序博客网 时间:2024/06/05 18:41
public class RemoveDu {/** *By过忍 */public static void main(String[] args) {//测试数据ArrayList<String> list = new ArrayList<String>();Random random = new Random();for(int i = 0; i<10000; i++){list.add(""+random.nextInt(20));}//方法类ReDu reDu= new ReDu();//方法1long t1=System.currentTimeMillis();reDu.print(reDu.remove1(list));long t2=System.currentTimeMillis();System.out.println("方法1所用时间:"+(t2-t1)+"毫秒");//方法2t1=System.currentTimeMillis();reDu.print(reDu.remove2(list));t2=System.currentTimeMillis();System.out.println("方法2所用时间:"+(t2-t1)+"毫秒");}}//去掉重复的方法 class ReDu{//方法1public List<String> remove1(List<String> list1){    HashSet<String> h=new HashSet<String>(list1);    list1.clear();    list1.addAll(h);    List<String> list2=new ArrayList<String>();    list2=list1;    return list2;}//方法2public List<String> remove2(List<String> list2){List<String> list=new ArrayList<String>();for(String i: list2){if(Collections.frequency(list2, i) < 2) list.add(i);}return list;}//输出public void print(List<String> list){System.out.print("10000个随机在[1,20]的数,排除重复后的数据: ");for(int i = 0;i<list.size();i++){System.out.print(list.get(i)+",");}}}

输出结果:

10000个随机在[1,20]的数,排除重复后的数据: 3,2,1,0,7,6,5,4,9,8,19,17,18,15,16,13,14,11,12,10,方法1所用时间:35毫秒
10000个随机在[1,20]的数,排除重复后的数据: 3,2,1,0,7,6,5,4,9,8,19,17,18,15,16,13,14,11,12,10,方法2所用时间:3毫秒

0 0
原创粉丝点击