← OOP

Design HashMap

Medium
Python
class MyHashMap:
    def __init__(self): self.data=[-1]*1000001
    def put(self,key,val): self.data[key]=val
    def get(self,key): return self.data[key]
    def remove(self,key): self.data[key]=-1
Java
class MyHashMap{
    int[] data=new int[1000001];
    MyHashMap(){java.util.Arrays.fill(data,-1);}
    public void put(int key,int val){data[key]=val;}
    public int get(int key){return data[key];}
    public void remove(int key){data[key]=-1;}
}

Key Insight

Python [-1]*n vs Java Arrays.fill(). __init__ is constructor equivalent.

Python → Java Differences

  • [-1]*n vs Arrays.fill()
  • __init__ vs constructor
  • Direct array map identical
Python
class MyHashMap:
    def __init__(self): self.data=[-1]*1000001
    def put(self,key,val): self.data[key]=val
    def get(self,key): return self.data[key]
    def remove(self,key): self.data[key]=-1
Java
class MyHashMap{
    int[] data=new int[1000001];
    MyHashMap(){java.util.Arrays.fill(data,-1);}
    public void put(int key,int val){data[key]=val;}
    public int get(int key){return data[key];}
    public void remove(int key){data[key]=-1;}
}

Algorithm Steps

1. Array indexed by key
2. -1 as sentinel