Am 28.08.2014 um 19:30 schrieb Louis Wasserman:
Comparator is spec'd to be allowed to return any number, positive, negative, or zero, but indexOf is specifically spec'd to return -1.

Yes, I know. I wanted to say, that from this knowing some developer might assume the same for indexOf when successfully using ArrayList@contains() with other negative value than -1.

If an indexOf method returns a negative value other than -1, that is a bug;

Yes, but how you suggest to deal with such a bug in existing code. If we would unify JDK code to LinkedList style, it would break such existing code. That's what I wanted to point on.

Does the original thread opener want to open a bug e.g. "Unify code of 
contains()"?
If not, the discussion doesn't make sense anymore.

-Ulf




On Thu, Aug 28, 2014 at 10:27 AM, Ulf Zibis <ulf.zi...@cosoco.de 
<mailto:ulf.zi...@cosoco.de>> wrote:


    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;
                 }





--
Louis Wasserman

Reply via email to