Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #16963
| Path | csiph.com!usenet.pasdenom.info!gegeweb.org!eternal-september.org!feeder.eternal-september.org!mx04.eternal-september.org!.POSTED!not-for-mail |
|---|---|
| From | Eric Sosman <esosman@ieee-dot-org.invalid> |
| Newsgroups | comp.lang.java.programmer |
| Subject | Re: verbose sort |
| Date | Thu, 02 Aug 2012 12:28:58 -0400 |
| Organization | A noiseless patient Spider |
| Lines | 38 |
| Message-ID | <jve9sd$o2p$1@dont-email.me> (permalink) |
| References | <ad14b658-e1c5-483a-a447-802725d731ff@googlegroups.com> |
| Mime-Version | 1.0 |
| Content-Type | text/plain; charset=ISO-8859-1; format=flowed |
| Content-Transfer-Encoding | 7bit |
| Injection-Date | Thu, 2 Aug 2012 16:29:01 +0000 (UTC) |
| Injection-Info | mx04.eternal-september.org; posting-host="d3779b2c4a3397eb5709eec94bad057a"; logging-data="24665"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18ZrbmQXvlXotGgDta9CDJF" |
| User-Agent | Mozilla/5.0 (Windows NT 5.1; rv:14.0) Gecko/20120713 Thunderbird/14.0 |
| In-Reply-To | <ad14b658-e1c5-483a-a447-802725d731ff@googlegroups.com> |
| Cancel-Lock | sha1:Q7s0F/XIqiWzOc0J2OWv6Dyzj88= |
| Xref | csiph.com comp.lang.java.programmer:16963 |
Show key headers only | View raw
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
Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
verbose sort bob smith <bob@coolfone.comze.com> - 2012-08-02 08:37 -0700
Re: verbose sort Eric Sosman <esosman@ieee-dot-org.invalid> - 2012-08-02 12:28 -0400
Re: verbose sort markspace <-@.> - 2012-08-02 10:19 -0700
Re: verbose sort Eric Sosman <esosman@ieee-dot-org.invalid> - 2012-08-02 13:59 -0400
Re: verbose sort markspace <-@.> - 2012-08-02 11:14 -0700
Re: verbose sort Daniel Pitts <newsgroup.nospam@virtualinfinity.net> - 2012-08-02 13:38 -0700
Re: verbose sort bob smith <bob@coolfone.comze.com> - 2012-08-02 15:19 -0700
Re: verbose sort Lew <lewbloch@gmail.com> - 2012-08-02 14:15 -0700
Re: verbose sort Roedy Green <see_website@mindprod.com.invalid> - 2012-08-03 01:37 -0700
csiph-web