Kulas_Code20

MyListArray

Nov 2nd, 2021 (edited)
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.80 KB | None | 0 0
  1. package com.files;
  2.  
  3.  
  4. interface MyList<e> {
  5.     //sentinels
  6.     public boolean isEmpty();
  7.     public boolean isFull();
  8.     public boolean addItem(e item);
  9.     public boolean isItem(e item);
  10.     public boolean removeItem(e item);
  11.     public boolean insertAfter(e item, e newitem);
  12.     public boolean insertBefore(e item, e newitem);
  13.     public boolean updateItem(e item, e newitem);
  14.  
  15. }// end of interface
  16.  
  17. class MyListArray<E> implements MyList<E>{
  18.    
  19.     private int size;
  20.     private int count;
  21.     private E[] entries;
  22.     private int position;
  23.    
  24.     @SuppressWarnings("unchecked")
  25.     public MyListArray(int size) {
  26.         this.entries = (E[]) new Object[size];
  27.     }
  28.    
  29.     public MyListArray() {  this(10);   }
  30.  
  31.     @Override
  32.     public boolean isEmpty() {  return count == 0;  }
  33.  
  34.     @Override
  35.     public boolean isFull() {   return count == entries.length; }
  36.  
  37.     @Override
  38.     public boolean addItem(E item) {
  39.         entries[count++] = item;
  40.         return true;
  41.     }
  42.  
  43.     @Override
  44.     public boolean isItem(E item) {
  45.         boolean found = false;
  46.         for(int i=0; i<entries.length; i++) {
  47.             if(item.equals(entries[i])) {
  48.                 found = true;
  49.                 position = i;
  50.                 break;
  51.             }
  52.         }
  53.         return found;
  54.     }
  55.  
  56.     @Override
  57.     public boolean removeItem(E item) {
  58.         boolean isElem = isItem(item);
  59.         if(isElem) {
  60.             for(int i=0; i<entries.length; i++) {
  61.                 if(i == 0) {
  62.                     entries[0] = null;
  63.                     count--;
  64.                     break;
  65.                 }
  66.             }
  67.         }
  68.         return isElem;
  69.     }
  70.  
  71.     @Override
  72.     public boolean insertAfter(E item, E newitem) {
  73.         boolean isElem = isItem(item);
  74.         if(isElem) {
  75.             count++;
  76.             for(int i=entries.length-1; i>position; i--) {
  77.                 entries[i] = entries[i-1];
  78.             }
  79.             entries[position+1] = newitem;
  80.         }
  81.         return isElem;
  82.     }
  83.  
  84.     @Override
  85.     public boolean insertBefore(E item, E newitem) {
  86.         boolean isElem = isItem(item);
  87.         if(isElem) {
  88.             count++;
  89.             for(int i=entries.length-1; i>position; i--) {
  90.                 entries[i] = entries[i-1];
  91.             }
  92.             entries[position] = newitem;
  93.         }
  94.         return isElem;
  95.     }
  96.  
  97.     @Override
  98.     public boolean updateItem(E item, E newitem) {
  99.         boolean isElem = isItem(item);
  100.         if(isElem) {
  101.             for(int i=0; i<entries.length; i++) {
  102.                 if(position == i) {
  103.                     entries[count++] = newitem;
  104.                 }
  105.             }
  106.         }
  107.         return isElem;
  108.     }
  109.    
  110.     public String toString() {
  111.         StringBuffer sb = new StringBuffer();
  112.         //sb.append(entries[0]);
  113.         for(int i=0; i<entries.length; i++) {
  114.             if(entries[i] != null) {
  115.                 sb.append(entries[i]+"->");
  116.             }
  117.         }
  118.         return sb.toString();
  119.     }
  120.    
  121. }//End of the class
  122.  
  123. public class TestList {
  124.     static public void main(String... args){
  125.           MyList<String> list = new MyListArray<String>();
  126.              list.addItem(new String("A"));
  127.              list.addItem(new String("B"));
  128.              list.addItem(new String("C"));
  129.              list.addItem(new String("D"));
  130.              list.addItem(new String("E"));
  131.              System.out.println(list);
  132.              System.out.println("Remove the item in the head:");
  133.              list.removeItem(new String("A"));
  134.              System.out.println(list);
  135.              System.out.println("Insert a new  item after tail:");
  136.              list.insertAfter(new String("E"),new String("X"));
  137.              System.out.println(list);
  138.              System.out.println("Insert a new  item after any item not the tail:");
  139.              list.insertAfter(new String("B"),new String("X"));
  140.              System.out.println(list);
  141.              System.out.println("Insert a new  item before head:");
  142.              list.insertBefore(new String("B"),new String("W"));
  143.              System.out.println(list);
  144.              System.out.println("Insert a new  item ebfore any item not the head:");
  145.              list.insertBefore(new String("D"),new String("W"));
  146.              System.out.println(list);
  147.              System.out.println("Update element D, changed it to Y");
  148.              list.updateItem(new String("D"),new String("Y"));
  149.              System.out.println(list);
  150.     }
  151. }//End of the class
  152.  
Add Comment
Please, Sign In to add comment