日期:2014-05-20  浏览次数:20766 次

如何找出arraylist中重复的电话号码?
数据量:1000W..
循环次数:只能用一次..
数据类型:电话号码..

------解决方案--------------------
暂时没想到好办法。

循环的时候,另用一个HashMap存储号码,如果HashMap中某个号码已经存在了,就把这个号码就是重复的。
------解决方案--------------------
1. 能不能先将打的ArrayList分成各个小的Arraylist每个里面放一种类型的号码。。如:131,132,133,134,135等等。。这样就将排除重复的问题范围缩小到每个Arraylist,逐步排除。。
2. 应该可以满足你的要求。。将ArrayList中的电话号码循环一次,写入一个txt文件,重复的不写入。。这样就生成一个没有重复的txt,然后将txt读入ArrayList。。。。

思路还是变向去实现。。。
------解决方案--------------------
用数组和链表结合的方式应该可以,基本思路如下:
1.数字0-9共10个数,数组长度为10,每个单元都链接到下一个10位的数组,即链到下一层(即每个数组单元放的是下一层的10位数组),层数代表电话号码的位数。号码多长就有多少层。
2.遍历号码,对号码解析。例如:13945670456,第一位是1,第2位是3,第3位是9,那么我就在的第一层下标为,第2层下标为3,第三层下标为9.。。。。。。。。。第十一曾下标为6的数组中。
3.放之前先对要存放数据的单元格检查是否为空,不为空就报为重复号码,并对其操作。

兄弟慢慢弄吧,,,不用api又只能循环一次,够狠的,我只能想到这个了。。。
------解决方案--------------------
遍历一次,放到数据库中,然后就是数据库的sql了,呵呵
------解决方案--------------------
搞错了,那个移除是多余的唉。
两个list,一个装着100W的号码listA,一个是空的listB,循环装号码的那个,每次循环里判断该号码是否存在于listB中,如果存在,进行下一次循环;如果不存在,就把它放到listB中。这样最后listB中应该就是没有重复的号码吧。