[color=red][b]1.先对10万数据排序;[/b][/color]
[color=blue][b]2.对比前后两条数据 ;[/b][/color]
[b]3.筛选出正确数据。[/b]
[color=blue][b]2.对比前后两条数据 ;[/b][/color]
[b]3.筛选出正确数据。[/b]
package com.xxx.xxx;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Random;
public class Test2 {
final static int _capacity = 1000000;
final static Random rand = new Random(System.currentTimeMillis() + _capacity);
static ArrayList<String> list = new ArrayList<String>(_capacity);
static ArrayList<String> newlist = new ArrayList<String>(_capacity);
public static void main(String[] args) throws InterruptedException {
long ts = System.currentTimeMillis();
int modVal = _capacity / 3;
for (int i = 0; i < _capacity; i++) {
rand.setSeed(i);
list.add(Integer.toString(Math.abs(rand.nextInt() % modVal)));
}
ts = System.currentTimeMillis() - ts;
// 生成一个100000条数据的list
System.out.println("生成时间 :" + ts);
test2();
}
static void test() {
newlist.clear();
int repetition = 0;
long ts = System.currentTimeMillis();
Collections.sort(list);
String str = list.get(0);
int max = list.size();
for (int i = 1; i < max; i++) {
if (str.equals(list.get(i))) {
repetition++;
continue;
}
newlist.add(str);
str = list.get(i);
}
newlist.add(str);
ts = System.currentTimeMillis() - ts;
System.out.println("------ 排序检查方法 -------");
System.out.println("查找时间 :" + ts);
System.out.println("重复 :" + repetition);
System.out.println("正确 :" + newlist.size());
}
}