Create the class ResizableArrayBag following the description in questions 12, 13, 14, 15, and 16 from the book.

The class ResizableArrayBag has an array that can grow in size as objects are added to the bag. Revise the class so that its array also can shrink in size as objects are removed from the bag. Accomplishing this task will require two new private methods, as follows:

The first new method checks whether we should reduce the size of the array:

private boolean isTooBig()

This method returns true if the number of entries in the bag is less than half the size of the array and the size of the array is greater than 20.

The second new method creates a new array that is three quarters the size of the current array and then copies the objects in the bag to the new array:

private void reduceArray()

Implement each of these two methods, and then use them in the definitions of the two remove methods

Consider the two private methods described in the previous exercise.

a. The method isTooBig requires the size of the array to be greater than 20. What problem could occur if this requirement is dropped?

b. The method reduceArray is not analogous to the method ensureCapacity in that it does not reduce the size of the array by one half. What problem could occur if the size of the array is reduced by one half instead of three quarters?

Define the method union , as described in Exercise 5 of the previous chapter, for the class ResizableArrayBag .

Define the method intersection , as described in Exercise 6 of the previous chapter, for the class ResizableArrayBag .

Define the method difference , as described in Exercise 7 of the previous chapter, for the class ResizableArrayBag

Academic Honesty!
It is not our intention to break the school's academic policy. Posted solutions are meant to be used as a reference and should not be submitted as is. We are not held liable for any misuse of the solutions. Please see the frequently asked questions page for further questions and inquiries.
Kindly complete the form. Please provide a valid email address and we will get back to you within 24 hours. Payment is through PayPal, Buy me a Coffee or Cryptocurrency. We are a nonprofit organization however we need funds to keep this organization operating and to be able to complete our research and development projects.