class MyHashSet{
private static final int BASE =769;
private LinkedList[] data;
@Override
public String toString() {
return "MyHashSet{" +
"data=" + Arrays.toString(data) +
'}';
}
public MyHashSet(){
data=new LinkedList[BASE];
for (int i = 0; i <BASE ; i++) {
data[i]=new LinkedList<Integer>();
}
}
private static int hash(int key){
return key%BASE;
}
public void add(int key){
int h=hash(key);
Iterator<Integer> iterator=data[h].iterator();
while (iterator.hasNext()){
Integer element=iterator.next();
if(element==key){
return;
}
}
data[h].offerLast(key);
}
public void remove(int key){
int h=hash(key);
Iterator<Integer> iterator=data[h].iterator();
while (iterator.hasNext()){
Integer element=iterator.next();
if(element==key){
data[h].remove(element);
return;
}
}
}
public boolean contains(int key){
int h=hash(key);
Iterator<Integer> iterator=data[h].iterator();
while (iterator.hasNext()){
Integer element=iterator.next();
if(element==key) return true;
}
return false;
}
}
public class DEMO_1 {
public static void main(String[] args) {
MyHashSet myHashSet=new MyHashSet();
myHashSet.add(2);
myHashSet.add(2);
for (int i = 0; i <10 ; i++) {
myHashSet.add(i);
}
System.out.println(myHashSet);
System.out.println(myHashSet.contains(100));
myHashSet.remove(2);
System.out.println(myHashSet);
}
}