Question: Define a class StatePair with two generic types (Type1 and Type2), a constructor, mutators, accessors, and a printInfo() method. Three ArrayLists have been pre-filled with
Define a class StatePair with two generic types (Type1 and Type2), a constructor, mutators, accessors, and a printInfo() method. Three ArrayLists have been pre-filled with StatePair data in main():
- ArrayList> zipCodeState: Contains ZIP code/state abbreviation pairs
- ArrayList> abbrevState: Contains state abbreviation/state name pairs
- ArrayList> statePopulation: Contains state name/population pairs
Complete main() to use an input ZIP code to retrieve the correct state abbreviation from the ArrayList zipCodeState. Then use the state abbreviation to retrieve the state name from the ArrayList abbrevState. Lastly, use the state name to retrieve the correct state name/population pair from the ArrayList statePopulation and output the pair.
import java.util.Scanner; import java.io.FileInputStream; import java.io.IOException; import java.util.ArrayList;
public class StatePopulations {
public static ArrayList> fillArray1(ArrayList> statePairs, Scanner inFS) { StatePair pair; int intValue; String stringValue;
while (inFS.hasNextLine()) { intValue = inFS.nextInt(); stringValue = inFS.next(); pair = new StatePair (intValue, stringValue); statePairs.add(pair); } return statePairs; } public static ArrayList> fillArray2(ArrayList> statePairs, Scanner inFS) { StatePair pair; String stringValue1; String stringValue2;
while (inFS.hasNextLine()) { stringValue1 = inFS.next(); inFS.nextLine(); stringValue2 = inFS.nextLine(); pair = new StatePair (stringValue1, stringValue2); statePairs.add(pair); } return statePairs; } public static ArrayList> fillArray3(ArrayList> statePairs, Scanner inFS) { StatePair pair; String stringValue; int intValue;
while (inFS.hasNextLine()) { stringValue = inFS.nextLine(); intValue = inFS.nextInt(); inFS.nextLine(); pair = new StatePair (stringValue, intValue); statePairs.add(pair); } return statePairs; } public static void main(String[] args) throws IOException { Scanner scnr = new Scanner(System.in); FileInputStream fileByteStream = null; // File input stream Scanner inFS = null; // Scanner object int myZipCode; int i; // ZIP code - state abbrev. pairs ArrayList> zipCodeState = new ArrayList>(); // state abbrev. - state name pairs ArrayList> abbrevState = new ArrayList>(); // state name - population pairs ArrayList> statePopulation = new ArrayList>(); // Fill the three ArrayLists // Try to open zip_code_state.txt file fileByteStream = new FileInputStream("zip_code_state.txt"); inFS = new Scanner(fileByteStream); zipCodeState = fillArray1(zipCodeState, inFS); fileByteStream.close(); // close() may throw IOException if fails // Try to open abbreviation_state.txt file fileByteStream = new FileInputStream("abbreviation_state.txt"); inFS = new Scanner(fileByteStream); abbrevState = fillArray2(abbrevState, inFS); fileByteStream.close(); // Try to open state_population.txt file fileByteStream = new FileInputStream("state_population.txt"); inFS = new Scanner(fileByteStream); statePopulation = fillArray3(statePopulation, inFS); fileByteStream.close(); // Read in ZIP code from user myZipCode = scnr.nextInt(); for (i = 0; i < zipCodeState.size(); ++i) { // TODO: Using ZIP code, find state abbreviation } for (i = 0; i < abbrevState.size(); ++i) { // TODO: Using state abbreviation, find state name } for (i = 0; i < statePopulation.size(); ++i) { // TODO: Using state name, find population. Print pair info. } } }
Step by Step Solution
There are 3 Steps involved in it
java import javautilArrayList class StatePair private Type1 first private Type2 second public StatePairType1 first Type2 second thisfirst first thissecond second Accessors public Type1 getFirst return ... View full answer
Get step-by-step solutions from verified subject matter experts
