Given reference, useful methods for accessing Java class ArrayList:
add (elt): Add element to the end of the list, e.g. arrList.add (elt)
get (index): Get an element (with index) in list,e.g. arrList.get (0)
size(): Size (total number of elements) of the list, e.g. arrList.size()
Based on the given references above and the class City in the last question, define a new Java class BCity for modeling “Better” Cities with the following requirements.
a) This BCity class is a public subclass of the given class City
- This class has a specific instance field named bRList (type ArrayList of string) representing the list of better rules (of string type) governing the better city.
- This field is initialized with an empty ArrayList of string.
b) It has one constructor with 3 parameters (String CN, int CP, String[] rules):
- The first and second parameters are for the name and population of the city object, while the third parameter is for the rules.
- The body of this constructor first calls the corresponding constructor of its superclass with the two related input parameters.
package com.company; //BCity is a public subclass of City public class BCity extends City{ //bRList is a variable of type ArrayList and is initialied with an empty list List<String> bRlist = new ArrayList<>(); //The constructor has 3 arguments as mentioned BCity(String cN, int cP, String[] rules){ //super keyword calls the parent constructor with the input arguments super(cN, cP); this.bRlist = Arrays.asList(rules); } //hasRules has returnType of int and accepts an input parameter of type String public int hasRules(String rule){ int flag = -1; //loop over brList for (int i = 0; i< this.bRlist.size(); i++) { //whenever the element matches assign the value of flag and break the loop if(this.bRlist.get(i) == rule){ flag = i; break; } } //return the value of flag return flag; } //dispRList has returnType of void and donot have any input parameters public void dispRList(){ //this will display the city and population value System.out.println("City "+ this.cN + "Pop "+ this.cP); //loop over bRList to display as mentioned for(String rule: this.bRlist){ System.out.println(rule); } } }