Path: csiph.com!x330-a1.tempe.blueboxinc.net!usenet.pasdenom.info!news.albasani.net!.POSTED!not-for-mail From: Jan Burse Newsgroups: comp.lang.java.programmer Subject: BitSet vs BigInteger (false Android doc) Date: Fri, 02 Sep 2011 21:48:06 +0200 Organization: albasani.net Lines: 35 Message-ID: Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit X-Trace: news.albasani.net 0j8mSEE4XzYLTOi2RaOh/6PdAP29hToE4UX6bLdWqCGa/5HsUuDZm97mqjjJd/I0FVqcV3FpXBtGkxUGzr0iaQ== NNTP-Posting-Date: Fri, 2 Sep 2011 19:48:15 +0000 (UTC) Injection-Info: news.albasani.net; logging-data="mYykoIupD3JShoa9s/IsFS9T+IT6wHqfj7p2GJAcJJcqClS/XW7dIkXFYTHZALD/cBfVP1hNbNVCGYL9DQ/9II0udTlQwRcXGzUkfeKzjueVp6H4DOlFYKcEl0cPVLhW"; mail-complaints-to="abuse@albasani.net" User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0.1) Gecko/20110830 Firefox/6.0.1 SeaMonkey/2.3.1 Cancel-Lock: sha1:YToxqR9evdHz8fIPGWNbe5nsbLM= Xref: x330-a1.tempe.blueboxinc.net comp.lang.java.programmer:7540 Dear All, Just notice the following note on Android for java.lang.BigInteger: Slow Two's Complement Bitwise Operations This API includes operations for bitwise operations in two's complement representation. Two's complement is not the internal representation used by this implementation, so such methods may be inefficient. Use BitSet for high-performance bitwise operations on arbitrarily-large sequences of bits. But why should be BitSet any faster than BigInteger? Both BitSet and BigInteger don't use some sparse representation. They just allocate an array, in the case of BitSet its a long array, and in the case of BigInteger int array. The BigInteger sign does not slow down the process in any way. Its just that the highest int of the BigInteger carries a sign, which is arbirarily extended to the left. So BigInteger can represent: ....1xxxxxx With an infinite sequence of 1's to the left. And then do boolean operation. But there is practically no overhead for that. But what I saw is that BitSet is not immutable, so this could be a reason. But the two's complement is not an issue, this is just rubbish. Right? Bye