我有这个循环,它将布尔LinkedList分成8位,并返回缓冲区中每个字节的ASCII值。该函数返回字符串缓冲区。这个Java算法怎么能更快
如果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;
}
的最后一个非8位缓冲区将转换其ascii值并将该值连接到输出。 –