您的位置:首页 > 其它

使用bitmap对一个大小在一定范围内的无重复数据排序(比如电话号码)|在一个大小在一定范围内的数据集中查找重复数据

2013-08-04 17:57 281 查看
/**
* 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]);
}
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐