在使用PAT-Tree的中文实现中需要用到大量的位运算,BitSet在效率上的表现可能尚待商榷,不过拿来做实验是没有问题的。
在Java的文档中说明了BitSet实现了Vector接口,是一个可按需增长的存储位的数据结构,位的值位布尔型,初始大小为64bit,初始值均为“false”。
常用方法:
void set(int bitIndex)、void set(int bitIntex, boolean value)
将bitIndex位置的值设为“true”或者给定的值
boolean get(int bitIndex)
获取bitIndex位置处的值
BitSet get(int fromIndex, int toIndex)
以BitSet存储返回fromIndex与toIndex区间之间的值
void clear()、void clear(int bitIndex)、void clear(int fromIndex, int toIndex)
置整个BitSet/相应位置/区间的值为“false”
int length() :
BitSet的逻辑大小(实际使用大小),值为“true”最大的索引位加1
int size() BitSet的实际大小,默认为64
and(BitSet set)、andNot(BitSet set) … :
与另一BitSet相应的逻辑位运算
String toString() :
返回值为“true”的位置的String对象,如第1和第10位为“true”,其他位置为“false”,则返回{1, 10}
应用实例:下面的代码将字符转换为与编码对应的二进制字符串:
Java代码
package org.eone.test;
import java.util.BitSet;
public class TestBitSet {
private static String toBitSet(String str){
String result = “[“;
BitSet bitSet = new BitSet();
byte[] strBits = str.getBytes();
for(int i = 0; i< strBits.length * 8; i++){
if((strBits[i / 8] & (128 >> (i % 8))) > 0){
bitSet.set(i);
}
}
for(int i = 0; i < bitSet.length(); i++){
if(bitSet.get(i))
result += "1";
else
result +="0";
}
result += "]";
return result;
}
public static void main(String[] args) {
String str = "测试一下";
System.out.println(toBitSet(str));
}
}
使用时还需注意,在多线程情况下要注意线程安全问题。
[来源:http://haiker.iteye.com/blog/1742492]
分类目录
- arch/management (17)
- computer (38)
- java/j2ee (305)
- lnmpa (237)
- mac/iphone/ipad/android (11)
- mysql/oracle/postgresql (126)
- os/software (74)
- other (518)
- python (6)
- redis/memcached/mongo (31)
- sitebuild (143)
随便看看
标签云
程序员 创业 人生箴言 eclipse 快捷键 术语 索引 unix命令 vim wordpress java学习笔记 环境变量 oracle内置函数 index 人生 数据类型 nohup tuxedo mysql学习笔记 MS-DOS命令 servlet spring 职场进阶 职业进阶 服务器选购 服务器选型 apache JPA MongoDB 注解 tomcat 子女教育 jquery maven JVM aix命令 网络营销 java异常 seo 人生规划 关键字 css 网络推广 struts 系统优化 成长 frame iframe bluehost jdbc select 我的信仰 oracle函数 cookie HashMap 站长工具 乱码 ArrayList secureCRT jsp session tail find halt 事务 oracle单记录函数 算法 URL window table javascript操作表单元素 String 字符串处理 健康 http 域名 情感 more google A记录 域名解析 netstat 弹出对话框 弹出窗口 框架集 框架 excel 字符串 javascript函数 showModalDialog nginx number 数组 sql frameset 开源程序 java数组 软件 oracle服务友情链接
收藏链接