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


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

Re: equals(), Sets, Maps, and degrees of equality

From Lew <lewbloch@gmail.com>
Newsgroups comp.lang.java.programmer
Subject Re: equals(), Sets, Maps, and degrees of equality
Date 2011-11-11 14:21 -0800
Organization http://groups.google.com
Message-ID <364616.2083.1321050103231.JavaMail.geo-discussion-forums@prms22> (permalink)
References (3 earlier) <663d43b1-2c58-40ea-90d5-d46b8ae821e5@cc2g2000vbb.googlegroups.com> <j9gq5d$ue6$1@dont-email.me> <5a705514-4b5e-48c2-8984-83e3b62b23b9@y7g2000vbe.googlegroups.com> <j9hvhf$r4p$1@dont-email.me> <0ac33ed5-19cc-4654-ba74-8df90262cd51@cu3g2000vbb.googlegroups.com>

Show all headers | View raw


Sean Mitchell wrote:
...
> I think, fundamentally, that is the problem. I don't think that Dog
> or any subclass of Dog should have to be in any way concerned with
> how I want to use him in a collection. Although IMO it is reasonable
> for Dog to know whether or nor he is the same as another Dog in all
> the ways that are important to Dogs.
> 
> The core of the issue for me is that the most commonly used
> implementations of Set (possibly Map was a poor example, as has been
> illustrated by Andreas and others) rely solely on the object's
> equals() to determine equivalence.

The core of the issue is that you want to use the wrong entity as your key.

The fault, dear Brutus, lies not in our 'equals()' method but in ourselves.

> TreeSet will take a Comparator as pointed out, and so probably this
> is good enough, but it seems a little hackish to use a Comparator,
> and a SortedSet to solve a problem of equality (or perhaps,
> equivalency).


"Seems"?  That's a pretty subjective statement without any engineering basis.  What is "hackish"?  That is the standard solution and why 'Comparator' exists in the API.  The burden of proof is on the one claiming "hackishness", along with the burden of definition for such a vague, subjective term, especially when paired with the hand-waving, responsibility-ducking "seems".

I'm here to tell you, there's nothing hackish about using a 'Comparator'.  That's a strange sentiment coming from someone who wants to hackishly use the 'Dog' class for a key where he means 'Breed'.  Maybe if your model wasn't so tangled and illogical you'd have an easier time of it.

-- 
Lew

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


Thread

equals(), Sets, Maps, and degrees of equality Sean Mitchell <sean@mitchwood.com> - 2011-11-09 18:33 -0800
  Re: equals(), Sets, Maps, and degrees of equality Owen Jacobson <angrybaldguy@gmail.com> - 2011-11-09 22:10 -0500
    Re: equals(), Sets, Maps, and degrees of equality v_borchert@despammed.com (Volker Borchert) - 2011-11-10 04:42 +0000
  Re: equals(), Sets, Maps, and degrees of equality Eric Sosman <esosman@ieee-dot-org.invalid> - 2011-11-09 22:11 -0500
    Re: equals(), Sets, Maps, and degrees of equality markspace <-@.> - 2011-11-09 22:43 -0800
      Re: equals(), Sets, Maps, and degrees of equality Sean Mitchell <sean@mitchwood.com> - 2011-11-10 06:33 -0800
        Re: equals(), Sets, Maps, and degrees of equality markspace <-@.> - 2011-11-10 07:21 -0800
          Re: equals(), Sets, Maps, and degrees of equality Sean Mitchell <sean@mitchwood.com> - 2011-11-10 07:29 -0800
            Re: equals(), Sets, Maps, and degrees of equality markspace <-@.> - 2011-11-10 10:27 -0800
            Re: equals(), Sets, Maps, and degrees of equality Eric Sosman <esosman@ieee-dot-org.invalid> - 2011-11-10 20:58 -0500
              Re: equals(), Sets, Maps, and degrees of equality markspace <-@.> - 2011-11-10 19:07 -0800
                Re: equals(), Sets, Maps, and degrees of equality Eric Sosman <esosman@ieee-dot-org.invalid> - 2011-11-10 23:24 -0500
                Re: equals(), Sets, Maps, and degrees of equality markspace <-@.> - 2011-11-10 20:55 -0800
              Re: equals(), Sets, Maps, and degrees of equality Sean Mitchell <sean@mitchwood.com> - 2011-11-11 10:27 -0800
                Re: equals(), Sets, Maps, and degrees of equality Lew <lewbloch@gmail.com> - 2011-11-11 14:21 -0800
    Re: equals(), Sets, Maps, and degrees of equality Sean Mitchell <sean@mitchwood.com> - 2011-11-10 06:31 -0800
      Re: equals(), Sets, Maps, and degrees of equality Daniel Pitts <newsgroup.nospam@virtualinfinity.net> - 2011-11-10 11:27 -0800
  Re: equals(), Sets, Maps, and degrees of equality Roedy Green <see_website@mindprod.com.invalid> - 2011-11-10 16:01 -0800
  Re: equals(), Sets, Maps, and degrees of equality Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2011-11-11 09:08 +0000
    Re: equals(), Sets, Maps, and degrees of equality Lew <lewbloch@gmail.com> - 2011-11-11 07:27 -0800
      Re: equals(), Sets, Maps, and degrees of equality Sean Mitchell <sean@mitchwood.com> - 2011-11-11 10:28 -0800
        Re: equals(), Sets, Maps, and degrees of equality Lew <lewbloch@gmail.com> - 2011-11-11 14:22 -0800
          Re: equals(), Sets, Maps, and degrees of equality markspace <-@.> - 2011-11-11 15:19 -0800
          Re: equals(), Sets, Maps, and degrees of equality Lew <lewbloch@gmail.com> - 2011-11-13 21:18 -0800
            Re: equals(), Sets, Maps, and degrees of equality Lew <lewbloch@gmail.com> - 2011-11-16 09:15 -0800

csiph-web