Impact of code difference in Collection#contains() worth improving?
Ulf Zibis
Ulf.Zibis at CoSoCo.de
Thu Aug 28 17:27:28 UTC 2014
Am 27.08.2014 um 17:51 schrieb Martin Buchholz:
> The ArrayList version saves one byte of bytecode, and is therefore very
> slightly better. We should bless that version and use it consistently.
+1
Additional argument:
The LinkedList code requires to load 32/64-Bit -1 into CPU. This may take some time on some CPU and
at least wastes memory footprint.
Additionally register pressure increases.
Vitaly, please correct me, if I'm wrong, just for learning more.
Another advantage is that there is no problem if some implementation of indexOf() erroneously
returns another negative value than -1. I remember some compare() implementations, which sometimes
return different values than only -1, 0, +1.
-Ulf
>> ArrayList:
>>
>> public boolean contains(Object o) {
>> return indexOf(o) >= 0;
>> }
>>
>> LinkedList:
>>
>> public boolean contains(Object o) {
>> return indexOf(o) != -1;
>> }
>>
More information about the core-libs-dev
mailing list