Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.ArrayList;
- public class WaitingLoopArrayImpl<E> implements WaitingArrayInterface<E> {
- private int entryIndex;
- private int exitIndex;
- private int initialCapacity;
- private ArrayList<E> loopArray;
- public WaitingLoopArrayImpl() {
- this.entryIndex = 99;
- this.exitIndex = 0;
- this.initialCapacity = 100;
- this.loopArray = new ArrayList<E>(initialCapacity);
- for(int i = 0; i < 100; i++){
- loopArray.add(null);
- }
- }
- public WaitingLoopArrayImpl(int capacity){
- this.entryIndex = capacity - 1;
- this.exitIndex = 0;
- this.initialCapacity = capacity;
- this.loopArray = new ArrayList<E>();
- for(int i = 0; i < capacity; i++){
- loopArray.add(null);
- }
- }
- private void resizeCapacity(){
- initialCapacity *= 2;
- ArrayList<E> copy = loopArray;
- loopArray = new ArrayList<E>(initialCapacity);
- for(int i = 0; i < initialCapacity; i++){
- loopArray.add(null);
- }
- for(int i = 0; i < copy.size(); i++) {
- loopArray.set(i, copy.get(i));
- }
- }
- @Override
- public void add(E e){
- if(entryIndex == initialCapacity - 1) {
- entryIndex = 0;
- } else { entryIndex += 1; }
- loopArray.set(entryIndex, e);
- }
- @Override
- public void remove() throws EmptyWaitingArrayException {
- if(loopArray.isEmpty() == true){
- throw new EmptyWaitingArrayException("WaitingLoopArrayImpl remove is not working properly");
- }
- if(exitIndex == initialCapacity - 1) {
- loopArray.set(exitIndex, null);
- exitIndex = 0;
- } else {
- loopArray.set(exitIndex, null);
- exitIndex += 1;
- }
- }
- @Override
- public void clear() throws EmptyWaitingArrayException {
- if(loopArray.isEmpty() == true){
- throw new EmptyWaitingArrayException("EWA Exception thrown");
- }
- loopArray = new ArrayList<E>(initialCapacity);
- for(int i = 0; i < initialCapacity; i++){
- loopArray.add(null);
- }
- }
- @Override
- public E getFirst() throws EmptyWaitingArrayException {
- if(loopArray.isEmpty() == true) {
- throw new EmptyWaitingArrayException("EWA Exception thrown");
- } else { return loopArray.get(exitIndex); }
- }
- @Override
- public E getLast() throws EmptyWaitingArrayException {
- if(loopArray.isEmpty() == true) {
- throw new EmptyWaitingArrayException("EWA Exception thrown");
- } else { return loopArray.get(entryIndex); }
- }
- @Override
- public boolean isEmpty(){
- int ctr = 0;
- for(int i = 0; i < loopArray.size(); i++){
- if(loopArray.get(i) == null){
- ctr += 1;
- }
- }
- if(ctr == initialCapacity){
- return true;
- } else { return false; }
- }
- @Override
- public boolean isFull(){
- int ctr = 0;
- for(int i = 0; i < loopArray.size(); i++){
- if(loopArray.get(i) == null){
- ctr += 1;
- }
- }
- if(ctr > 1) {
- return false;
- } else { return true; }
- }
- @Override
- public String toString(){
- String str = "[";
- for(int i = 0; i < loopArray.size() - 1; i++){
- if(loopArray.get(i) == null) {
- str += "";
- } else { str += loopArray.get(i) + ","; }
- }
- if(loopArray.get(loopArray.size() - 1) == null){
- str += "]";
- } else { str += loopArray.get(loopArray.size() - 1) + "]"; }
- return str;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement