Use and Modify the ProvinceTerritory class below: Create a class called Canada.
ID: 3574719 • Letter: U
Question
Use and Modify the ProvinceTerritory class below:
Create a class called Canada. It contains an ArrayList of 13 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 new ProvinceTerritory("alberta", 3645257));
etc...
Create a method called public int getTotalPopulation() which uses an interator to add up all of the individual populations to calculate Canada’s total population.
Create a method called public String getLowestPopulation() which uses an interator to determine and return the name of the province/territory that has the lowest 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.
Note: Use iterators in all of the methods.
Write a method called public String[] getProvincesWithPopulationBetween(int min, int max) which returns an array of the names of all provinces/territories that have a population between min and max (inclusive)
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 String[] 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.
Create a method called public ProvinceTerritory[] getMoreProvincesWhoseNameContains(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.
Create a method called public 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.
------------------------------------------------------------------------------------
import java.util.ArrayList;
import java.util.Iterator;
public 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 + "]";
}
}
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'));
}
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.