/**
* Bitmap.java
*/
package Algorithm;
import java.util.BitSet;
import org.junit.Test;
/**
* @Author: chenxiaoyu
* @Date: 2013-8-2下午12:23:14
* @Description:使用bitmap需要一堆数都在一个特定的范围内
*/
public class Bitmap {
static int[] array = RandomNum.getRandom(0, 1000000 , 10);
static int MaxIndex = array.length - 1;
static int[] mixarray = new int[]{1,2,4,6,3,8,9,0,4,5,6};
static int MaxMixIndex = mixarray.length - 1;
static int size = 1000000;
//使用bitmap对一个大小在一定范围内的无重复数据排序(比如电话号码)
@Test
public void order(){
BitSet bs = new BitSet(size);
for(int i=0; i<size;i++){
bs.set(0,false);
}
for(int i=0; i<=MaxIndex; i++){
bs.set(array[i], true);
}
System.out.println("order:");
for(int i=0; i<size;i++){
if(bs.get(i)){
System.out.println(i);
}
}
}
//使用bitmap在一个大小在一定范围内的数据集中查找重复数据
@Test
public void duplicate(){
BitSet bs = new BitSet(size);
for(int i=0; i<size;i++){
bs.set(0,false);
}
System.out.println("duplicate:");
for(int i=0; i<=MaxMixIndex; i++){
if(!bs.get(mixarray[i])){
bs.set(mixarray[i], true);
}else{
System.out.println(mixarray[i]);
}
}
}
}
使用bitmap对一个大小在一定范围内的无重复数据排序(比如电话号码)|在一个大小在一定范围内的数据集中查找重复数据
最新推荐文章于 2023-11-24 14:44:41 发布