您的位置:首页 > 其它

打印数组中所有重复的元素

2015-09-01 19:58 375 查看


public static void checkDuplicates(int[] array)

{

BitSet bs=new BitSet(32000);

for(int i=0;i<array.length;i++)

{

int num=array[i];

int num0=num-1;//bitset 从0开始,数字从1开始

if(bs.get(num0))

{

System.out.println(num);

}

else

{

bs.set(num0);

}

}

}

class BitSet{

int [] bitset;

public BitSet(int size)

{

bitset=new int[size>>5];//除以32

}

boolean get(int pos)

{

int wordNumer=(pos>>5);//除以32

int bitNumber=(pos & 0x1F);//除以32取余数

return (bitset[wordNumber] & (1<<bitNumber))!=0;

}

void set(int pos)

{

int wordNumber=(pos>>5);//除以32

int bitNumber=(pos & 0x1F);//除以32取余数

bitset[wordNumber]|=1<<bitNumber;

}

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