Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!news.glorb.com!news-out.readnews.com!transit3.readnews.com!news-out.news.tds.net!newsreading01.news.tds.net!53ab2750!not-for-mail From: "=?UTF-8?B?QXJuZSBWYWpow7hq?=" <=?utf-8?b?qxjuzsbwywpow7hq?=@1:261/38.remove-odu-this> Subject: Re: hashCode Message-ID: <50294F01.56792.calajapr@time.synchro.net> X-Comment-To: Lew Newsgroups: comp.lang.java.programmer In-Reply-To: <50294F00.56788.calajapr@time.synchro.net> References: <50294F00.56788.calajapr@time.synchro.net> X-FTN-AREA: COMP.LANG.JAVA.PROGRAMMER X-FTN-MSGID: 1:261/38 70f2c591 X-FTN-REPLY: 1:261/38 d7a82db3 Content-Type: text/plain; charset=IBM437 Content-Transfer-Encoding: 8bit X-Gateway: time.synchro.net [Synchronet 3.16a-Win32 NewsLink 1.98] Lines: 51 Date: Mon, 13 Aug 2012 19:38:30 GMT NNTP-Posting-Host: 69.21.70.65 X-Complaints-To: news@tds.net X-Trace: newsreading01.news.tds.net 1344886710 69.21.70.65 (Mon, 13 Aug 2012 14:38:30 CDT) NNTP-Posting-Date: Mon, 13 Aug 2012 14:38:30 CDT Organization: tds.net Xref: csiph.com comp.lang.java.programmer:17844 To: Lew From: "=?UTF-8?B?QXJuZSBWYWpow7hq?=" <=?utf-8?b?qxjuzsbwywpow7hq?=@1:261/38.rem ove-nlb-this> To: Lew From: "=?UTF-8?B?QXJuZSBWYWpow7hq?=" <=?utf-8?b?qxjuzsbwywpow7hq?=@1:261/38.rem ove-m2z-this> To: Lew From: =?UTF-8?B?QXJuZSBWYWpow7hq?= On 8/11/2012 7:34 PM, Lew wrote: > Jan Burse wrote: >> Maybe it would make sense to spell out what the contract >> for hashCode() is. Well the contract is simply, the >> following invariant should hold: >> >> /* invariant that should hold */ >> if a.equals(b) then a.hashCode()==b.hashCode() > > True, but if you read the specification for 'hashCode()' fully, that is > not the entire contract, only the compiler-enforceable part of it. > > The entire specification requires that as much as feasible, the 'Object' > implementation distinguish distinct instances, and that the method > generally support 'HashMap', which promises O(1) 'get()' and 'put()' > with a "proper" (i.e., compliant) 'hashCode()'. Two wrong statements. It says that the method is defined to support HashMap And HashMap does not guarantee O(1) with a correct hashCode - it guarantee that for one that return good distributed values. Arne -+- 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 -+- 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 --- 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