Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #37070
| Path | csiph.com!eternal-september.org!feeder.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail |
|---|---|
| From | Martin Gregorie <martin@address-in-sig.invalid> |
| Newsgroups | comp.lang.java.programmer |
| Subject | Re: What's the best way to make a cross string set? |
| Date | Sat, 5 Aug 2017 22:11:24 -0000 (UTC) |
| Organization | A noiseless patient Spider |
| Lines | 42 |
| Message-ID | <om5fqc$kv8$1@dont-email.me> (permalink) |
| References | <6f9ff338-1944-4b64-83b8-4a921ce57a89@googlegroups.com> <olfv7c$8l3$3@Gaia.teknon.de> <d4c8c823-5603-4b80-be33-629d8d307faf@googlegroups.com> <olg9jv$8ct$1@dont-email.me> <69ec0210-e2a0-4823-98f0-8fc72e5c5db9@googlegroups.com> <olq4mi$ch1$1@dont-email.me> <f6d72507-62a9-4442-b7c9-cb47c9ed60fe@googlegroups.com> <3664ab4d-9619-43d0-9535-1ce7ab4d4438@googlegroups.com> <a107955f-5c2c-4e0e-8033-4009d7eb26fd@googlegroups.com> <slrnoo36mh.o2q.avl@logic.at> <ab4d1e2d-baae-488d-a6a3-9e0c31037c4d@googlegroups.com> <slrnoo6d9a.o2q.avl@logic.at> <d6795819-3c8a-464a-8ce1-ba47779d80dd@googlegroups.com> <olvi83$kku$1@dont-email.me> <fa610c79-f1b6-43b6-85fa-ffc4ca5298d4@googlegroups.com> <olvn2h$9kv$1@dont-email.me> <abafc97c-13c8-4934-9f55-0e0606c126c7@googlegroups.com> <om58cc$2bd$1@dont-email.me> <om59v8$41u$1@dont-email.me> <om5ct1$g6d$1@dont-email.me> |
| Mime-Version | 1.0 |
| Content-Type | text/plain; charset=UTF-8 |
| Content-Transfer-Encoding | 8bit |
| Injection-Date | Sat, 5 Aug 2017 22:11:24 -0000 (UTC) |
| Injection-Info | mx02.eternal-september.org; posting-host="2a314f8c9fb508e930a38288f7996edf"; logging-data="21480"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+V8xRlUtr5TRviCHtOyjjBTs6V2p4LB8c=" |
| User-Agent | Pan/0.141 (Tarzan's Death; 168b179 git.gnome.org/pan2) |
| Cancel-Lock | sha1:kTvK25lMh4oxn68HXA7SmkmH77A= |
| Xref | csiph.com comp.lang.java.programmer:37070 |
Show key headers only | View raw
On Sat, 05 Aug 2017 17:25:44 -0400, Eric Sosman wrote:
> It turns out that he's not trying to change the ordering
> rule in mid-stream (at least, he didn't show any such attempt). Rather,
> he's got an obfuscated way of implementing a two-part key: The first
> part is this "style" number, and if the numbers agree the second is
> either a String or an int (disguised as an Integer), depending on the
> style.
>
OK, but thats a pretty poor way of implementing a two-part key, or an n-
part key for that matter. Assuming that a is a more significant part than
b, then the comparison should rather be something like this:
int compareTo(Thing thing)
{
int r1 = a.compare-to(thing.geta());
if (r1 != 0)
return r1
else
return b.compareTo(thing.getb());
}
with the restriction that all multipart key elements must be accessable
to getters or must not be protected or private: an not unreasonable
restriction.
> True, if he were to change the style of an object already
> in a SortedSomething then the fertilizer would hit the fan.
> But that's just a particular case of the general caution against
> mutating an object that's in a Set or Map or other value-sensitive data
> structure.
>
I suspect this may be at least part of why other ordered structures such
as TreeMap and HashMap use a separate key. Often this is going to be
handled via a getter, e.g. tree.put(thing.getKey(), thing); but it
doesn't have to be used this way.
--
martin@ | Martin Gregorie
gregorie. | Essex, UK
org |
Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
What's the best way to make a cross string set? Eric Douglas <e.d.programmer@gmail.com> - 2017-07-27 12:12 -0700
Re: What's the best way to make a cross string set? Knute Johnson <nospam@rabbitbrush.frazmtn.com> - 2017-07-27 14:38 -0500
Re: What's the best way to make a cross string set? Eric Douglas <e.d.programmer@gmail.com> - 2017-07-27 12:49 -0700
Re: What's the best way to make a cross string set? Eric Sosman <esosman@comcast-dot-net.invalid> - 2017-07-27 15:49 -0400
Re: What's the best way to make a cross string set? Eric Douglas <e.d.programmer@gmail.com> - 2017-07-27 12:55 -0700
Re: What's the best way to make a cross string set? Eric Douglas <e.d.programmer@gmail.com> - 2017-07-27 13:22 -0700
Re: What's the best way to make a cross string set? Eric Douglas <e.d.programmer@gmail.com> - 2017-07-27 13:30 -0700
Re: What's the best way to make a cross string set? Knute Johnson <nospam@rabbitbrush.frazmtn.com> - 2017-07-27 15:34 -0500
Re: What's the best way to make a cross string set? Eric Sosman <esosman@comcast-dot-net.invalid> - 2017-07-27 18:27 -0400
Re: What's the best way to make a cross string set? lewbloch@gmail.com - 2017-07-28 18:51 -0700
Re: What's the best way to make a cross string set? v_borchert@despammed.com (Volker Borchert) - 2017-07-29 06:03 +0000
Re: What's the best way to make a cross string set? v_borchert@despammed.com (Volker Borchert) - 2017-07-28 18:19 +0000
Re: What's the best way to make a cross string set? Eric Douglas <e.d.programmer@gmail.com> - 2017-07-28 13:28 -0700
Re: What's the best way to make a cross string set? Eric Sosman <esosman@comcast-dot-net.invalid> - 2017-07-28 17:20 -0400
Re: What's the best way to make a cross string set? Eric Douglas <e.d.programmer@gmail.com> - 2017-07-31 05:24 -0700
Re: What's the best way to make a cross string set? Eric Sosman <esosman@comcast-dot-net.invalid> - 2017-07-31 12:01 -0400
Re: What's the best way to make a cross string set? Eric Douglas <e.d.programmer@gmail.com> - 2017-07-31 10:58 -0700
Re: What's the best way to make a cross string set? Sebastian <nowhere@nirvana.org> - 2017-07-31 18:13 +0200
Re: What's the best way to make a cross string set? lewbloch@gmail.com - 2017-07-31 09:24 -0700
Re: What's the best way to make a cross string set? Arne Vajhøj <arne@vajhoej.dk> - 2017-07-31 19:24 -0400
Re: What's the best way to make a cross string set? Eric Douglas <e.d.programmer@gmail.com> - 2017-08-01 06:36 -0700
Re: What's the best way to make a cross string set? Eric Sosman <esosman@comcast-dot-net.invalid> - 2017-08-01 10:58 -0400
Re: What's the best way to make a cross string set? Eric Douglas <e.d.programmer@gmail.com> - 2017-08-01 08:09 -0700
Re: What's the best way to make a cross string set? lewbloch@gmail.com - 2017-08-01 09:39 -0700
Re: What's the best way to make a cross string set? Eric Douglas <e.d.programmer@gmail.com> - 2017-08-01 10:18 -0700
Re: What's the best way to make a cross string set? Andreas Leitgeb <avl@logic.at> - 2017-08-02 09:22 +0000
Re: What's the best way to make a cross string set? Eric Douglas <e.d.programmer@gmail.com> - 2017-08-02 05:13 -0700
Re: What's the best way to make a cross string set? Andreas Leitgeb <avl@logic.at> - 2017-08-03 14:33 +0000
Re: What's the best way to make a cross string set? Eric Douglas <e.d.programmer@gmail.com> - 2017-08-03 08:51 -0700
Re: What's the best way to make a cross string set? Eric Sosman <esosman@comcast-dot-net.invalid> - 2017-08-03 12:20 -0400
Re: What's the best way to make a cross string set? Eric Douglas <e.d.programmer@gmail.com> - 2017-08-03 10:15 -0700
Re: What's the best way to make a cross string set? Eric Sosman <esosman@comcast-dot-net.invalid> - 2017-08-03 13:42 -0400
Re: What's the best way to make a cross string set? Eric Douglas <e.d.programmer@gmail.com> - 2017-08-03 11:17 -0700
Re: What's the best way to make a cross string set? Eric Sosman <esosman@comcast-dot-net.invalid> - 2017-08-05 16:08 -0400
Re: What's the best way to make a cross string set? Martin Gregorie <martin@address-in-sig.invalid> - 2017-08-05 20:31 +0000
Re: What's the best way to make a cross string set? Eric Sosman <esosman@comcast-dot-net.invalid> - 2017-08-05 17:25 -0400
Re: What's the best way to make a cross string set? Martin Gregorie <martin@address-in-sig.invalid> - 2017-08-05 22:11 +0000
Re: What's the best way to make a cross string set? Sebastian <nowhere@nirvana.org> - 2017-08-06 18:13 +0200
Re: What's the best way to make a cross string set? Eric Douglas <e.d.programmer@gmail.com> - 2017-08-02 12:56 -0700
Re: What's the best way to make a cross string set? Eric Sosman <esosman@comcast-dot-net.invalid> - 2017-07-29 16:55 -0400
Re: What's the best way to make a cross string set? Sebastian <nowhere@nirvana.org> - 2017-07-29 23:56 +0200
csiph-web