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


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

Re: verbose sort

Path csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!news.glorb.com!news-out.readnews.com!transit4.readnews.com!news-out.news.tds.net!newsreading01.news.tds.net!53ab2750!not-for-mail
From "Eric Sosman" <eric.sosman@1:261/38.remove-s5y-this>
Subject Re: verbose sort
Message-ID <501AC32E.55955.calajapr@time.synchro.net> (permalink)
X-Comment-To bob smith
Newsgroups comp.lang.java.programmer
In-Reply-To <501AC32E.55954.calajapr@time.synchro.net>
References <501AC32E.55954.calajapr@time.synchro.net>
X-FTN-AREA COMP.LANG.JAVA.PROGRAMMER
X-FTN-MSGID 1:261/38 bd2f6a43
X-FTN-REPLY 1:261/38 398a0a0a
Content-Type text/plain; charset=IBM437
Content-Transfer-Encoding 8bit
X-Gateway time.synchro.net [Synchronet 3.16a-Win32 NewsLink 1.98]
Lines 47
Date Thu, 02 Aug 2012 19:12:03 GMT
NNTP-Posting-Host 69.21.70.65
X-Complaints-To news@tds.net
X-Trace newsreading01.news.tds.net 1343934723 69.21.70.65 (Thu, 02 Aug 2012 14:12:03 CDT)
NNTP-Posting-Date Thu, 02 Aug 2012 14:12:03 CDT
Organization tds.net
Xref csiph.com comp.lang.java.programmer:16993

Show key headers only | 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