public Queue<V> findNeighbors(Point key,V v) {
        
        Queue<V> neighbors = new ConcurrentLinkedQueue<V>();
        Point region = findRegion(key);
        int x = region.x, y = region.y;
        if(buckets[x][y] != null) {
            for (V val : buckets[x][y]) {
                    if (val != v) {
                        neighbors.add(val);
                    }
            }
            for (int i = -1; i <= 1; i++) {
                for (int c = -1; c <= 1; c++) {
                    if (isValid(x+c,y+c)) {
                        if (buckets[x+c][y+c] != null){
                            neighbors.addAll(buckets[x+c][y+c]);
                        }
                    }
                }
            }
        }
        return neighbors;
    }