在很多情况下情况下,我们需要对我们的数据进行排序,有非常多的排序算法比如冒泡排序、快速排序等。但是如果是对于整形数的排序,个人觉得用java中的BitSet结果就非常的方便快捷。
BitSet是用来存取位的,如果数据是整数,利用BitSet把需要排序的相应位设置为1,比如待排序中有一个数为6,则利用BitSet中提供的set方法,把其设置为true,bits.set(6, true),其中bits是BitSet变量。到时候取结果的时候只要把相应的位为BitSet变量输出来就可以了。
在《编程珠玑》的书中也有讨论到,对于一些大量的整形数据,书中谈论到是对于电话号码的排序中有利用到数据结构中的位图结构,当然前提是对于整形数据的排序。
比如:
程序1:
public static void main(String[] args) {
int []nums = {6,9,8,7,56,9,8,7,1,2,3,500};//待排序数组
BitSet bits = new BitSet(4);
for (int i = 0; i < nums.length; i++) {
bits.set(nums[i], true);//把相应的位设置为true
}
System.out.println(bits);//输出BitSet变量
}