convert code python to java
def BitmapHoles(strArr):
bitmap = {}
for i in range(len(strArr)):
for j in range(len(strArr[i])):
bitmap[(i,j)] = int(strArr[i][j])
hole_count = 0
hole = set()
checked = set()
flag = True
for i in range(len(strArr)):
for j in range(len(strArr[i])):
stack = [(i,j)]
while stack:
coords = stack.pop()
if coords not in checked:
checked.add(coords)
if bitmap[coords] == 0 and coords not in hole:
hole.add(coords)
if flag == True:
hole_count += 1
flag = False
if coords[0] - 1 >= 0 and (coords[0]-1,coords[1]) not in checked:
stack.append((coords[0]-1,coords[1]))
if coords[0] + 1 < len(strArr) and (coords[0]+1,coords[1]) not in checked:
stack.append((coords[0]+1,coords[1]))
if coords[1] - 1 >= 0 and (coords[0],coords[1]-1) not in checked:
stack.append((coords[0],coords[1]-1))
if coords[1] + 1 < len(strArr[coords[0]]) and (coords[0],coords[1]+1) not in checked:
stack.append((coords[0],coords[1]+1))
flag = True
return hole_count