Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class DynamicStringList implements DynamicStringCollectionMethods {
- private DynamicStringListElement first;
- private int length = 1;
- private DynamicStringListElement getListElement(int index) throws DynamicStringCollectionException { //durch alle Elemente durchgehen bis zum richtigen Element
- if (index < 0 || index >= length){
- throw new DynamicStringCollectionException(index);
- }
- if (first != null) {
- DynamicStringListElement element = first.getNext();//ToDo:NullPointerException(solved?)
- for (int i = 1; i < index; i++) {
- element = element.getNext();
- }
- return element;
- }else{
- throw new DynamicStringCollectionException(index);
- }
- }
- @Override
- public void append(String value) {
- try{
- this.insert(value, length);
- }catch (DynamicStringCollectionException e){
- e.printStackTrace();
- }
- }
- @Override
- public void insert(String value, int index) throws DynamicStringCollectionException {
- //next vom element übernehmen und element auf neues element verweisen lassen
- DynamicStringListElement newElement = new DynamicStringListElement(value);
- if (index == 0){
- if (length > 0){
- newElement.setNext(first);// müsste nicht das alte first auch eine neues Next bekommen
- }
- first = newElement;
- } else {
- if (index < 0){
- throw new DynamicStringCollectionException(index);
- }else {
- DynamicStringListElement element = this.getListElement(index);//ToDo: prüfen, dass es nicht kleiner null wird
- newElement.setNext(element.getNext());
- element.setNext(newElement);
- }
- }
- length++;
- }
- @Override
- public String get(int index) throws DynamicStringCollectionException {
- if (length == 0){
- return null;
- }else{
- return getListElement(index).getValue();
- }
- }
- @Override
- public void delete(int index) throws DynamicStringCollectionException {
- DynamicStringListElement deletedElement = this.getListElement(index);
- if (index == 0){
- first = deletedElement.getNext();
- }else{
- DynamicStringListElement element = this.getListElement(index - 1) ;
- element.setNext(deletedElement.getNext());
- }
- length--;
- }
- @Override
- public int getLength() {
- return length;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement