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


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

Re: What's the best way to make a cross string set?

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


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