Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Create a class called ProvinceTerritory. It contains two instance variables: a S

ID: 3574101 • Letter: C

Question

Create a class called ProvinceTerritory. It contains two instance variables: a String name and an int population. Create accessors and mutators too. The constructor takes the name and population as parameters and sets them as long as the name isn’t null and the population isn’t negative.


Create a class called Canada. It contains an ArrayList of ProvinceTerritory references:

Name ---------------------------------- Population
Ontario -------------------------------- 12,851,821
Quebec -------------------------------- 7,903,001
British Columbia --------------------- 4,400,057
Alberta --------------------------------- 3,645,257
Manitoba ------------------------------ 1,208,268
Saskatchewan ------------------------ 1,033,381
Nova Scotia --------------------------- 921,727
New Brunswick ---------------------- 751,171
Newfoundland and Labrador ----- 514,536
Prince Edward Island --------------- 140,204
Northwest Territories --------------- 41,462
Yukon ----------------------------------- 33,897
Nunavut -------------------------------- 31,906
Total: Canada ------------------------- 33,476,688

Populate the ArrayList inside the Canada constructor. The following code will be useful:

provinces.add(new ProvinceTerritory("british columbia", 4400057));
provinces.add(new ProvinceTerritory("alberta", 3645257));
etc...


Create a method called public int getTotalPopulation() which uses a for-each loop to add up all of the individual populations to calculate Canada’s total population.


Create a method called public String getLowestPopulation() which uses a for-each loop to determine and return the name of the province/territory that has the lowest population.


Create a method called public ProvinceTerritory getHighestPopulation() which uses a for-each loop to determine and return the name of the province/territory that has the highest population.


Create a method called public int getPopulation(String province) which returns the population of the province (the parameter); if there is no such province, return a constant called NO_SUCH_PROVINCE, which is an int set to -1.


Create a method called public boolean isProvinceInCanada(String name) which returns true if there is a province/territory in Canada with the given name (the parameter); otherwise returns false.


Create a method called public ProvinceTerritory[] getProvincesWhoseNameContains(String substring) which returns an array of the names of all provinces/territories whose name contains substring (the parameter). Hint: use the String class’s contains() method.


public ArrayList<ProvinceTerritory>
   getMoreProvincesWhoseNameContains(String substring)

which returns an ArrayList of the names of all provinces/territories whose name contains substring (the parameter). Hint: use the String class’s contains() method.


Create a method called public ArrayList<String> getProvincesWhoseNameStartsWith(char letter) which returns an array of the names of all provinces/territories whose name starts with letter (the parameter). Hint: use the String class’s startsWith() method or use the String class’s charAt(0) method.

Explanation / Answer

import java.util.ArrayList;

import java.util.Iterator;

class ProvinceTerritory {

   String name;

   int population;

   public ProvinceTerritory() {

       super();

   }

   public ProvinceTerritory(String name, int population) {

       super();

       if (name != null && population >= 0) {

           this.name = name;

           this.population = population;

       }

   }

   public String getName() {

       return name;

   }

   public void setName(String name) {

       this.name = name;

   }

   public int getPopulation() {

       return population;

   }

   public void setPopulation(int population) {

       this.population = population;

   }

   @Override

   public String toString() {

       return "ProvinceTerritory [name=" + name + ", population=" + population + "]";

   }

}

public class Canada {

   ArrayList<ProvinceTerritory> provinces;

   public Canada() {

       super();

       provinces = new ArrayList<ProvinceTerritory>();

       provinces.add(new ProvinceTerritory("Ontario", 12851821));

       provinces.add(new ProvinceTerritory("Quebec", 7903001));

       provinces.add(new ProvinceTerritory("british columbia", 4400057));

       provinces.add(new ProvinceTerritory("alberta", 3645257));

       provinces.add(new ProvinceTerritory("Manitoba", 1208268));

       provinces.add(new ProvinceTerritory("Saskatchewan", 1033381));

       provinces.add(new ProvinceTerritory("Nova Scotia", 921727));

       provinces.add(new ProvinceTerritory("New Brunswick", 751171));

       provinces.add(new ProvinceTerritory("Newfoundland and Labrador", 514536));

       provinces.add(new ProvinceTerritory("Prince Edward Island ", 140204));

       provinces.add(new ProvinceTerritory("Northwest Territories", 41462));

       provinces.add(new ProvinceTerritory("Yukon", 33897));

       provinces.add(new ProvinceTerritory("Nunavut", 31906));

   }

   public int getTotalPopulation() {

       int total = 0;

       Iterator<ProvinceTerritory> itr = provinces.iterator();

       while (itr.hasNext()) {

           ProvinceTerritory provinces = itr.next();

           total += provinces.getPopulation();

       }

       return total;

   }

   public String getLowestPopulation() {

       int low = Integer.MAX_VALUE;

       String name = "";

       Iterator<ProvinceTerritory> itr = provinces.iterator();

       while (itr.hasNext()) {

           ProvinceTerritory pt = itr.next();

           if (pt.getPopulation() < low) {

               low = pt.getPopulation();

               name = pt.getName();

           }

       }

       return name;

   }

   public String getHighestPopulation() {

       int high = Integer.MIN_VALUE;

       String name = "";

       Iterator<ProvinceTerritory> itr = provinces.iterator();

       while (itr.hasNext()) {

           ProvinceTerritory pt = itr.next();

           if (pt.getPopulation() > high) {

               high = pt.getPopulation();

               name = pt.getName();

           }

       }

       return name;

   }

   public int getPopulation(String province) {

       Iterator<ProvinceTerritory> itr = provinces.iterator();

       while (itr.hasNext()) {

           ProvinceTerritory pt = itr.next();

           if (pt.getName().equals(province)) {

               return pt.getPopulation();

           }

       }

       return -1;

   }

   public boolean isProvinceInCanada(String name) {

       Iterator<ProvinceTerritory> itr = provinces.iterator();

       while (itr.hasNext()) {

           ProvinceTerritory pt = itr.next();

           if (pt.getName().equals(name)) {

               return true;

           }

       }

       return false;

   }

   public ProvinceTerritory[] getProvincesWhoseNameContains(String substring) {

       ProvinceTerritory[] pt_substring = new ProvinceTerritory[provinces.size()];

       int i = 0;

       Iterator<ProvinceTerritory> itr = provinces.iterator();

       while (itr.hasNext()) {

           ProvinceTerritory pt = itr.next();

           if (pt.getName().contains(substring)) {

               pt_substring[i] = pt;

               i++;

           }

       }

       return pt_substring;

   }

   public ArrayList<ProvinceTerritory> getMoreProvincesWhoseNameContains(String substring) {

       ArrayList<ProvinceTerritory> pt_substring = new ArrayList<ProvinceTerritory>();

       Iterator<ProvinceTerritory> itr = provinces.iterator();

       while (itr.hasNext()) {

           ProvinceTerritory pt = itr.next();

           if (pt.getName().contains(substring)) {

               pt_substring.add(pt);

           }

       }

       return pt_substring;

   }

   public ArrayList<String> getProvincesWhoseNameStartsWith(char letter) {

       ArrayList<String> pt_substring = new ArrayList<String>();

       Iterator<ProvinceTerritory> itr = provinces.iterator();

       while (itr.hasNext()) {

           ProvinceTerritory pt = itr.next();

           if (pt.getName().charAt(0) == letter) {

               pt_substring.add(pt.getName());

           }

       }

       return pt_substring;

   }

   public void print_arraylist_string(ArrayList<String> al) {

       Iterator<String> itr = al.iterator();

       while (itr.hasNext()) {

           System.out.print(itr.next() + " ");

       }

       System.out.println();

   }

   public void print_arraylist(ArrayList<ProvinceTerritory> al) {

       Iterator<ProvinceTerritory> itr = al.iterator();

       while (itr.hasNext()) {

           System.out.println(itr.next().toString());

       }

   }

   public void print_array(ProvinceTerritory[] al) {

       for (int i = 0; i < al.length; i++) {

           if (al[i] != null)

               System.out.println(al[i].toString());

       }

   }

   public static void main(String[] args) {

       Canada c = new Canada();

       System.out.println("Highest population in canada : "+c.getHighestPopulation());

       System.out.println("Lowest population in canada : "+c.getLowestPopulation());

       System.out.println("Total population in canada : "+c.getTotalPopulation());

       System.out.println("Population of British columbia : "+c.getPopulation("british columbia"));

       System.out.println("Is "british columbia" in canada ? "+c.isProvinceInCanada("british columbia"));

       System.out.println(" Provinces which has substring "New" in their name");

       c.print_array(c.getProvincesWhoseNameContains("New"));

       System.out.println(" Provinces which has substring "New" in their name");

       c.print_arraylist(c.getMoreProvincesWhoseNameContains("New"));

       System.out.println(" Provinces whose name starts with 'N'");

       c.print_arraylist_string(c.getProvincesWhoseNameStartsWith('N'));

   }

}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote