public Map<Integer, List<LocationBean>> groupLocationsByWeight() { Map<Integer, List<LocationBean>> groupings = new HashMap<Integer, List<LocationBean>>(); for (LocationBean location : this.locations) { int weight = location.getGoogleContourWeightFloor(); if (!groupings.containsKey(weight)) { System.out.println( "Creating new grouping for weight: " + weight + " from " + location.getWeight()); groupings.put(weight, new ArrayList<LocationBean>()); } groupings.get(weight).add(location); } return groupings; }
// very innefficient, but works well enough for simple testing public void printGrouping(List<LocationBean> grouping, LocationBean[][] locationArray) { int rows = locationArray[0].length; int cols = locationArray.length; LocationBean[][] groupedLocationArray = new LocationBean[cols][rows]; for (int x = 0; x < rows; x++) { for (int y = 0; y < cols; y++) { for (LocationBean location : grouping) { if (location == locationArray[x][y]) { groupedLocationArray[x][y] = new LocationBean(1.0, 1.0, location.getWeight()); } } } } printLocationWeightsAsMap(groupedLocationArray); }