Question: Given the Java code below from the producer-consumer problem, change it so the code no longer uses Generics (which are called Templates in C++) but
- Given the Java code below from the producer-consumer problem, change it so the code no longer uses Generics (which are called Templates in C++) but instead uses Integer, and replace the arrays with ArrayList. Have the user input the buffer size at run time to match with the use of ArrayList instead of an array. Modify the code so it no longer implements an interface.
public class BufferImpl implements Buffer
{
private static final int BUFFER_SIZE = 5;
private E[] elements;
private int in, out, count;
public BufferImpl() {
count = 0;
in = 0;
out = 0;
elements = (E[]) new Object[BUFFER_SIZE];
}
// producers call this method
public void insert(E item) {
while (count == BUFFER_SIZE)
; // do nothing -- no free space
// add an element to the buffer
elements[in] = item;
in = (in + 1) % BUFFER_SIZE;
++count;
}
// consumers call this method
public E remove() {
E item;
while (count == 0)
; // do nothing - nothing to consume
// remove an item from the buffer
item = elements[out];
out = (out + 1) % BUFFER_SIZE;
--count;
return item;
}
}
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
