Advertisement
Guest User

JO

a guest
Dec 8th, 2016
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.62 KB | None | 0 0
  1. public class DynamicStringList implements DynamicStringCollectionMethods {
  2.  
  3.     private DynamicStringListElement first;
  4.     private int length = 1;
  5.  
  6.     private  DynamicStringListElement getListElement(int index) throws DynamicStringCollectionException {  //durch alle Elemente durchgehen bis zum richtigen Element
  7.         if (index < 0 || index >= length){
  8.             throw new DynamicStringCollectionException(index);
  9.         }
  10.         if (first != null) {
  11.             DynamicStringListElement element = first.getNext();//ToDo:NullPointerException(solved?)
  12.             for (int i = 1; i < index; i++) {
  13.                 element = element.getNext();
  14.             }
  15.             return element;
  16.         }else{
  17.             throw new DynamicStringCollectionException(index);
  18.         }
  19.     }
  20.  
  21.     @Override
  22.     public void append(String value) {
  23.         try{
  24.             this.insert(value, length);
  25.         }catch (DynamicStringCollectionException e){
  26.             e.printStackTrace();
  27.         }
  28.  
  29.     }
  30.  
  31.     @Override
  32.     public void insert(String value, int index) throws DynamicStringCollectionException {
  33.         //next vom element übernehmen und element auf neues element verweisen lassen
  34.         DynamicStringListElement newElement = new DynamicStringListElement(value);
  35.         if (index == 0){
  36.             if (length > 0){
  37.                 newElement.setNext(first);// müsste nicht das alte first auch eine neues Next bekommen
  38.             }
  39.             first = newElement;
  40.         } else {
  41.             if (index < 0){
  42.                 throw new DynamicStringCollectionException(index);
  43.             }else {
  44.                 DynamicStringListElement element = this.getListElement(index);//ToDo: prüfen, dass es nicht kleiner null wird
  45.                 newElement.setNext(element.getNext());
  46.                 element.setNext(newElement);
  47.             }
  48.         }
  49.  
  50.         length++;
  51.     }
  52.  
  53.     @Override
  54.     public String get(int index) throws DynamicStringCollectionException {
  55.         if (length == 0){
  56.             return null;
  57.         }else{
  58.             return getListElement(index).getValue();
  59.         }
  60.     }
  61.  
  62.     @Override
  63.     public void delete(int index) throws DynamicStringCollectionException {
  64.         DynamicStringListElement deletedElement = this.getListElement(index);
  65.         if (index == 0){
  66.             first = deletedElement.getNext();
  67.         }else{
  68.             DynamicStringListElement element = this.getListElement(index - 1) ;
  69.             element.setNext(deletedElement.getNext());
  70.         }
  71.         length--;
  72.     }
  73.  
  74.     @Override
  75.     public int getLength() {
  76.         return length;
  77.     }
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement