Swift : Why is it required for the key type in a Dictionary to be of type Hashable : <p>If I want to create a <code>Dictionary&lt;Key:Value&gt;()</code> it is required for the <code>Key</code> type object to the protocol <code>Hashable</code>. Why is that the case, how are Dictionaries implemented? </p>

<p>I mean I would understand that if the <code>Key</code> just needs to conform to the protocol of <code>Equatable</code> type, as the program will have to search for the related value, however, the extra <code>var hashValue: Int</code> that comes along with <code>Hashable</code> is a bit confusing</p>
