package edu.upenn.cit594.processor; import java.text.DecimalFormat; import java.util.ArrayList; import java.util.HashMap; import java.util.TreeMap; import edu.upenn.cit594.util.CovidData; import edu.upenn.cit594.util.Population; public class totalVaxPerCapita { public static HashMap<Integer, Integer> getVax(String timeStamp, String partOrFull, ArrayList<CovidData> covidData) { // hashmap with String zipcode and Integer value HashMap<Integer, Integer> zipVax = new HashMap<>(); for (CovidData entry : covidData) { String covidEntry = entry.gettimeStamp().split(" ")[0]; covidEntry = covidEntry.replace("\"", ""); if (covidEntry.equals(timeStamp)) { if (partOrFull.equals("partial")) { if (entry.getpartialVax() != 0) { zipVax.put(entry.getzipCode(), entry.getpartialVax()); } } else if (partOrFull.equals("full")) { if (entry.getfullVax() != 0) { zipVax.put(entry.getzipCode(), entry.getfullVax()); } } } } return zipVax; } public static TreeMap<Integer, Double> getVaxPerCapita (HashMap<Integer, Integer> zipVax, ArrayList<Population> population) { TreeMap <Integer, Double> sortedVaxPerCapita = new TreeMap<>(); //used to get trailing zeros DecimalFormat df = new DecimalFormat("#.0000"); for (Population popEntry : population) { if (zipVax.containsKey(popEntry.getZipCode())) { double VaxPerCapita = (double) zipVax.get(popEntry.getZipCode()) / popEntry.getPopulation(); //round to trailing zeros double roundedVaxPerCapita = Double.parseDouble(df.format(VaxPerCapita)); sortedVaxPerCapita.put(popEntry.getZipCode(), roundedVaxPerCapita); } } //System.out.println(sortedVaxPerCapita); return sortedVaxPerCapita; } }