<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
		<id>http://www.minetti.org/mediawiki/index.php?action=history&amp;feed=atom&amp;title=Java%3ALa_m%C3%A9thode_hashCode%28%29</id>
		<title>Java:La méthode hashCode() - Historique des versions</title>
		<link rel="self" type="application/atom+xml" href="http://www.minetti.org/mediawiki/index.php?action=history&amp;feed=atom&amp;title=Java%3ALa_m%C3%A9thode_hashCode%28%29"/>
		<link rel="alternate" type="text/html" href="http://www.minetti.org/mediawiki/index.php?title=Java:La_m%C3%A9thode_hashCode()&amp;action=history"/>
		<updated>2026-05-04T14:26:30Z</updated>
		<subtitle>Historique pour cette page sur le wiki</subtitle>
		<generator>MediaWiki 1.26.2</generator>

	<entry>
		<id>http://www.minetti.org/mediawiki/index.php?title=Java:La_m%C3%A9thode_hashCode()&amp;diff=87&amp;oldid=prev</id>
		<title>Jp : Page créée avec « == But == La méthode hashCode() permet d'optimiser l'utilisation de la méthode equals() en regroupant les instances entre-elles. Ainsi, les instances d'un même groupe a... »</title>
		<link rel="alternate" type="text/html" href="http://www.minetti.org/mediawiki/index.php?title=Java:La_m%C3%A9thode_hashCode()&amp;diff=87&amp;oldid=prev"/>
				<updated>2016-04-07T17:03:29Z</updated>
		
		<summary type="html">&lt;p&gt;Page créée avec « == But == La méthode hashCode() permet d&amp;#039;optimiser l&amp;#039;utilisation de la méthode equals() en regroupant les instances entre-elles. Ainsi, les instances d&amp;#039;un même groupe a... »&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== But ==&lt;br /&gt;
La méthode hashCode() permet d'optimiser l'utilisation de la méthode equals() en regroupant les instances entre-elles. Ainsi, les instances d'un même groupe auront le même code de hash.&lt;br /&gt;
&lt;br /&gt;
== Contraintes ==&lt;br /&gt;
L'algorithme de calcul de la valeur de hash doit obéir à certaines contraintes:&lt;br /&gt;
* Les groupes doivent avoir à peu près le même nombre d'instances.&lt;br /&gt;
&lt;br /&gt;
== Algorithme pour les types primitifs ==&lt;br /&gt;
{|style=&amp;quot;color:black;background-color:#ffffcc;&amp;quot; cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
!Type&lt;br /&gt;
!Algorithme&lt;br /&gt;
|- style=&amp;quot;background-color:white;&amp;quot;&lt;br /&gt;
|boolean&lt;br /&gt;
|return x ? 0x55555555 : 0x27777777;&lt;br /&gt;
|- style=&amp;quot;background-color:white;&amp;quot;&lt;br /&gt;
|byte&lt;br /&gt;
|int h = x &amp;amp; 0x7F;&lt;br /&gt;
return h | (h &amp;lt;&amp;lt; 8) | (h &amp;lt;&amp;lt; 16) | (h &amp;lt;&amp;lt; 24);&lt;br /&gt;
|- style=&amp;quot;background-color:white;&amp;quot;&lt;br /&gt;
|char&lt;br /&gt;
|return x | (x &amp;lt;&amp;lt; 16);&lt;br /&gt;
|- style=&amp;quot;background-color:white;&amp;quot;&lt;br /&gt;
|short&lt;br /&gt;
|int h = x &amp;amp; 0x7FFF:&lt;br /&gt;
return h | (h &amp;lt;&amp;lt; 16);&lt;br /&gt;
|- style=&amp;quot;background-color:white;&amp;quot;&lt;br /&gt;
|int&lt;br /&gt;
|return x; &lt;br /&gt;
|- style=&amp;quot;background-color:white;&amp;quot;&lt;br /&gt;
|long&lt;br /&gt;
|return (int)(x ^ (int)(x &amp;gt;&amp;gt; 32)); &lt;br /&gt;
|- style=&amp;quot;background-color:white;&amp;quot;&lt;br /&gt;
|float&lt;br /&gt;
|return Float.floatToIntBits(x);&lt;br /&gt;
|- style=&amp;quot;background-color:white;&amp;quot;&lt;br /&gt;
|double&lt;br /&gt;
|Long l = Double.doubleToLongBits(x);&lt;br /&gt;
return (int)(l ^ (int)(l &amp;gt;&amp;gt; 32));&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Combinaison d'attributs ==&lt;br /&gt;
Entre 2 attributs, hash1 et hash2, de type int:&lt;br /&gt;
 int hash = 0&lt;br /&gt;
 int h = hash1;&lt;br /&gt;
 for (int i = 7; i &amp;gt;= 0; --i) {&lt;br /&gt;
   if (i == 4) {&lt;br /&gt;
     h = hash2;&lt;br /&gt;
   }&lt;br /&gt;
   hash = hash * 21 + (char)h;&lt;br /&gt;
   h &amp;gt;&amp;gt;&amp;gt;= 8;&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>Jp</name></author>	</entry>

	</feed>