public static ArrayList<HashMap<Integer, ArrayList<Double>>> regionQuery(
            ArrayList<HashMap<Integer, ArrayList<Double>>> geneListCopy, ArrayList<Double> list, double eps){
        ArrayList<HashMap<Integer, ArrayList<Double>>> result = new ArrayList<HashMap<Integer, ArrayList<Double>>>();
        int size = geneListCopy.size();
        for(int i = 0; i < size; i++){
            HashMap<Integer, ArrayList<Double>> entry = geneListCopy.get(i);
            Integer key = (Integer) entry.keySet().toArray()[0];
            ArrayList<Double> neighborList = entry.get(key);
            if(EuclideanDistance(list, neighborList) - eps < epsilon){
                HashMap<Integer, ArrayList<Double>> newEntry = new HashMap<Integer, ArrayList<Double>>();
                newEntry.put(key, neighborList);
                result.add(newEntry);               
            }
        }
        return result;
    }