Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Program
- {
- static void Main()
- {
- MySet<string> hashSet = new MySet<string>();
- while (true)
- {
- string input = Console.ReadLine();
- hashSet.Add(input);
- }
- }
- }
- class MySet<T>
- {
- private List<T>[] items = new List<T>[100];
- public void Add(T item)
- {
- int index = this.GetIndex(item.GetHashCode());
- if (this.Contains(item, index))
- {
- return;
- }
- if (items[index] == null)
- {
- items[index] = new List<T>();
- }
- items[index].Add(item);
- }
- public bool Contains(T item)
- {
- int hashCode = item.GetHashCode();
- int index = this.GetIndex(hashCode);
- return this.Contains(item, index);
- }
- private int GetIndex(int hashcode)
- {
- return Math.Abs(hashcode % items.Length);
- }
- private bool Contains(T value, int index)
- {
- if (this.items[index] != null)
- {
- foreach (T item in this.items[index])
- {
- if (item.Equals(value))
- {
- return true;
- }
- }
- }
- return false;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement