Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #16993

Re: verbose sort

From "Eric Sosman" <eric.sosman@1:261/38.remove-s5y-this>
Subject Re: verbose sort
Message-ID <501AC32E.55955.calajapr@time.synchro.net> (permalink)
Newsgroups comp.lang.java.programmer
References <501AC32E.55954.calajapr@time.synchro.net>
Date 2012-08-02 19:12 +0000
Organization tds.net

Show all headers | View raw


  To: bob smith
From: Eric Sosman <esosman@ieee-dot-org.invalid>

On 8/2/2012 11:37 AM, bob smith wrote:
> I have some code that sorts a list like so:
>
> Vector<String> my_list = new Vector<String>();
>
>
>               Comparator<String> c = new Comparator<String>() {
>                       @Override
>                       public int compare(String object1, String object2) {
>                               if (object1 == null)
>                                       return -1;
>                               if (object2 == null)
>                                       return 1;
>                               object1 = object1.toLowerCase();
>                               object2 = object2.toLowerCase();
>                               return object1.compareTo(object2);
>                       };
>               };
>
> Collections.sort(my_list, c);
>
>
> This seems like a lot of code for such a common operation.  Is there a more
succinct way of doing this?

     Consider using compareToIgnoreCase().  Also, think about what
happens when two null's are compared: You should return zero rather than 
declaring one of them "less than" the other, because otherwise your comparator 
is inconsistent (you can have A<B, B<C, but C<A).

        public int compare(String s1, String s2) {
            if (s1 == null)
                return s2 == null ? 0 : -1;
            return s2 == null ? +1 : s1.compareToIgnoreCase(s2);
        }

--
Eric Sosman
esosman@ieee-dot-org.invalid

--- BBBS/Li6 v4.10 Dada-1
 * Origin: Prism bbs (1:261/38)
--- Synchronet 3.16a-Win32 NewsLink 1.98
Time Warp of the Future BBS - telnet://time.synchro.net:24

Back to comp.lang.java.programmer | Previous | NextNext in thread | Find similar | Unroll thread


Thread

Re: verbose sort "Eric Sosman" <eric.sosman@1:261/38.remove-s5y-this> - 2012-08-02 19:12 +0000
  Re: verbose sort v_borchert@despammed.com (Volker Borchert) - 2012-08-02 21:38 +0000

csiph-web