0
/ 50
For the following question, assume the following class definition of ArrayBag and item
public static final class ArrayBag<T> { ...
For the following question, assume the following class definition of ArrayBag and item
public static final class ArrayBag<T> {
private T[] contents;
private static final int MAX = 25;
private int numberOfEntries;
@SuppressWarnings("unchecked")
public ArrayBag() {
T[] tempBag = (T[])new Object[MAX];
contents = tempBag;
numberOfEntries = 0;
}
public ArrayBag(int desiredCapacity) {
@SuppressWarnings("unchecked")
// Unchecked cast
T[] tempBag = (T[])new Object[desiredCapacity];
contents = tempBag;
numberOfEntries = 0;
} // end constructor
public boolean isEmpty() {
return getCurrentSize() == 0;
}
public boolean add(T anEntry) {
if (anEntry == null) {
return false;
}
if (numberOfEntries < contents.length) {
contents[numberOfEntries] = anEntry;
numberOfEntries++;
return true;
}
else {
return false;
}
}
}
public static class Item{
private String name;
private double price;
private boolean onSale;
public Item(String n, double p, boolean sale) {
name = n;
price = p;
onSale = sale;
}
public String getName() {
return name;
}
public double getPrice() {
return price;
}
public boolean getOnSale() {
return onSale;
}
}
For this question, write a method that will take in an array of Item objects. Create an ArrayBag of Item objects and add all of the items where onSale
is true
, then return the ArrayBag.
Your feedback will appear here when you check your answer.