我有一个哈希表基类,我通过派生它来创建不同类型的哈希表。我只允许它接受实现我的 IHashable 接口的对象。例如 -
class LinearProbingHashTable<T> : HashTableBase<T> where T: IHashable
{
...
...
...
}
interface IHashable
{
/**
* Every IHashable implementation should provide an indentfying value for use in generating a hash key.
*/
int getIdentifier();
}
class Car : IHashable
{
public String Make { get; set; }
public String Model { get; set; }
public String Color { get; set; }
public int Year { get; set; }
public int getIdentifier()
{
/// ???
}
}
任何人都可以建议一种为汽车生成标识符的好方法,哈希函数可以使用该标识符将其放入哈希表中吗?
我实际上正在寻找一种通用解决方案来为任何给定的类生成一个 id。我想为所有类 HashableObject 提供一个基类,它实现了 IHashable 及其 getIdentifier 方法。所以我可以从 HashableObject 派生,它会自动为任何实例提供标识符。这意味着我不必为添加到哈希表的每个对象编写不同的 getIdentifier 方法。
public class HashableObject : IHashable
{
public int getIdentifier()
{
// Looking for code here that would generate an id for any object...
}
}
public class Dog : HashableObject
{
// Dont need to implement getIdentifier because the parent class does it for me
}