Advertisement
Guest User

Untitled

a guest
Nov 12th, 2019
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.35 KB | None | 0 0
  1. import java.util.ArrayList;
  2. public class WaitingLoopArrayImpl<E> implements WaitingArrayInterface<E> {
  3.   private int entryIndex;
  4.   private int exitIndex;
  5.   private int initialCapacity;
  6.   private ArrayList<E> loopArray;
  7.  
  8.   public WaitingLoopArrayImpl() {
  9.     this.entryIndex = 99;
  10.     this.exitIndex = 0;
  11.     this.initialCapacity = 100;
  12.     this.loopArray = new ArrayList<E>(initialCapacity);
  13.     for(int i = 0; i < 100; i++){
  14.       loopArray.add(null);
  15.     }
  16.   }
  17.  
  18.   public WaitingLoopArrayImpl(int capacity){
  19.     this.entryIndex = capacity - 1;
  20.     this.exitIndex = 0;
  21.     this.initialCapacity = capacity;  
  22.     this.loopArray = new ArrayList<E>();
  23.     for(int i = 0; i < capacity; i++){
  24.       loopArray.add(null);
  25.     }
  26.   }
  27.  
  28.  
  29.   private void resizeCapacity(){
  30.     initialCapacity *= 2;
  31.     ArrayList<E> copy = loopArray;
  32.     loopArray = new ArrayList<E>(initialCapacity);
  33.     for(int i = 0; i < initialCapacity; i++){
  34.       loopArray.add(null);
  35.     }
  36.     for(int i = 0; i < copy.size(); i++) {
  37.       loopArray.set(i, copy.get(i));
  38.     }
  39.   }
  40.  
  41.  
  42.   @Override
  43.   public void add(E e){
  44.     if(entryIndex == initialCapacity - 1) {
  45.       entryIndex = 0;
  46.     } else { entryIndex += 1; }
  47.     loopArray.set(entryIndex, e);    
  48.   }
  49.  
  50.   @Override
  51.   public void remove() throws EmptyWaitingArrayException {
  52.     if(loopArray.isEmpty() == true){
  53.       throw new EmptyWaitingArrayException("WaitingLoopArrayImpl remove is not working properly");
  54.     }
  55.     if(exitIndex == initialCapacity - 1) {
  56.       loopArray.set(exitIndex, null);
  57.       exitIndex = 0;
  58.     } else {
  59.       loopArray.set(exitIndex, null);
  60.       exitIndex += 1;
  61.     }
  62.   }
  63.  
  64.   @Override
  65.   public void clear() throws EmptyWaitingArrayException {
  66.     if(loopArray.isEmpty() == true){
  67.       throw new EmptyWaitingArrayException("EWA Exception thrown");
  68.     }
  69.     loopArray = new ArrayList<E>(initialCapacity);
  70.     for(int i = 0; i < initialCapacity; i++){
  71.       loopArray.add(null);
  72.     }
  73.    
  74.   }
  75.  
  76.   @Override
  77.   public E getFirst() throws EmptyWaitingArrayException {
  78.     if(loopArray.isEmpty() == true) {
  79.       throw new EmptyWaitingArrayException("EWA Exception thrown");
  80.     } else { return loopArray.get(exitIndex); }
  81.   }
  82.  
  83.   @Override
  84.   public E getLast() throws EmptyWaitingArrayException {
  85.     if(loopArray.isEmpty() == true) {
  86.       throw new EmptyWaitingArrayException("EWA Exception thrown");
  87.     } else { return loopArray.get(entryIndex); }
  88.   }
  89.  
  90.   @Override
  91.   public boolean isEmpty(){
  92.     int ctr = 0;
  93.     for(int i = 0; i < loopArray.size(); i++){
  94.       if(loopArray.get(i) == null){
  95.         ctr += 1;
  96.       }
  97.     }
  98.     if(ctr == initialCapacity){
  99.       return true;
  100.     } else { return false; }
  101.   }
  102.  
  103.   @Override
  104.   public boolean isFull(){
  105.     int ctr = 0;
  106.     for(int i = 0; i < loopArray.size(); i++){
  107.       if(loopArray.get(i) == null){
  108.         ctr += 1;
  109.       }
  110.     }
  111.     if(ctr > 1) {
  112.       return false;
  113.     } else { return true; }
  114.   }
  115.  
  116.   @Override
  117.   public String toString(){
  118.     String str = "[";
  119.     for(int i = 0; i < loopArray.size() - 1; i++){
  120.       if(loopArray.get(i) == null) {
  121.         str += "";
  122.       } else { str += loopArray.get(i) + ","; }
  123.     }
  124.     if(loopArray.get(loopArray.size() - 1) == null){
  125.       str += "]";
  126.     } else { str += loopArray.get(loopArray.size() - 1) + "]"; }
  127.     return str;
  128.   }
  129. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement