【发布时间】:2012-02-17 20:48:14
【问题描述】:
我有这个循环,它将布尔 LinkedList 拆分为 8 位,并返回缓冲区中每个字节的 ASCII 值。该函数返回字符串缓冲区。
如果 LinkedList 的大小很大,这段代码会非常慢。我尝试通过简单的循环更改Iterator,但它仍然很慢。
这个算法怎么可能真的很快?也许使用多线程?
注意:linkedList的大小并不总是能被8整除。
public String toString(){
String buffer = "";
String output = "";
LinkedList<Boolean> bits = this.bits;
for(Iterator it = this.bits.iterator(); it.hasNext();){
if(buffer.length() >= 8){
output += (char)Integer.parseInt(buffer, 2);
buffer = "";
}
buffer += ((Boolean)it.next() == false) ? "0" : "1";
}
if(buffer != "")
output += (char)Integer.parseInt(buffer, 2);
return output;
}
【问题讨论】:
-
最后一个非 8bits 的缓冲区将被转换成它的 ascii 值,并且该值被连接到输出。
标签: java algorithm binary linked-list ascii