Question
1. Complete the following method which counts the number of times a given phrase, str, is a match to a string in the ArrayList arr.
1. Complete the following method which counts the number of times a given phrase, str, is a match to a string in the ArrayList arr. Return the number of words in str. If no matches are found, return 1. (9 points) Example: If arr contains the strings {"be happy", "happy", "I am happy", "happy happy joy joy", "happy"} The method call countOccurances(arr, "happy") would return 2. The method call countOccurances(arr, "joy") would return 1. public int countOccurances (ArrayList arr, String str) { //to be written }
2. Grocery FRQ (ArrayLists) (9 points) public class Grocery { private String category; private int units; private double price; /*there may be other instance variables, constructors and methods not shown*/ public boolean equals (Grocery g) { /*implementation not shown*/ } public int getUnits(){ return units; } public double getPrice(){ return price; } public String getCategory(){ return category; } public class Shopping { private ArrayList myGroceries; public Shopping(Grocery[] groc){ /*to be implemented in part A*/ } public Grocery findBestValue(String c){ /*to be implemented in part B*/ } }
The Shopping constructor initializes the myGroceries instance variable with elements from the groc array. Only unique Grocery items are added to the myGroceries list (i.e. there are no duplicate Grocery items in myGroceries). A Grocery item is considered unique if at least one of the attributes differs (the category, units, and/or price). For example, if given the code: Grocery[] theGroceries = {new Grocery("cereal", 1, 4.99), new Grocery("milk", 1, 4.29), new Grocery("cereal", 2, 7.99), new Grocery("cereal", 1, 4.99), new Grocery("candy", 48, 10.99), new Grocery("candy", 6, 1.00)}; Shopping myShopping = new Shopping(theGroceries); The Grocery item "cereal", 1, 4.99 is not unique as there is another Grocery item with the same category, unit, and price. The Grocery item "cereal", 2, 7.99 is unique because it is different from the other Grocery item by both the number of units and price. Then the myGroceries arraylist of the Shopping class would be initialized with the following Grocery contents:
"cereal", 1, 4.99 "milk", 1, 4.29 "cereal", 2, 7.99 "candy", 48, 10.99 "candy", 6, 1.00
Complete the Shopping constructor.
- Grocery items can be categorized. Grocery items have a number of units (quantity) and price (for the collection of units). The findBestValue method locates all Grocery items of the Shopping class with the same category c and determines the best priced option of the category by determining the lowest price per unit. The findBestValue method returns the best priced Grocery item of category c. Precondition - there exists at least one such element with category c. For example, the myGroceries arrayList contains the following Grocery items:
"cereal", 1, 4.99 (price per unit is 4.99) "milk", 1, 4.29 (price per unit is 4.29) "cereal", 2, 8.00 (price per unit is 4.00) "candy", 50, 10.00 (price per unit is 0.20) "candy", 10, 1.00 (price per unit is 0.10)
Then a call to findBestValue() would return the last Grocery item (with the category "candy", number of units is 10 and price is 1.00); Write the findBestValue() method below.
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started