Advertisement
Guest User

Remove method in LinkedList (Java)

a guest
Jun 16th, 2016
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.67 KB | None | 0 0
  1. public class LinkedTaskList extends AbstractTaskList {
  2.    
  3.     private Link head;
  4.    
  5.     public void add(Task task) {
  6.         if (task == null)
  7.             System.out.println("Can't add empty task.");
  8.         else {
  9.             if (head == null) {
  10.                 head = new Link(task);
  11.             }
  12.            
  13.             Link linkTemp = new Link(task);
  14.             Link linkCurr = head;
  15.            
  16.             if (linkCurr != null) {
  17.                 while(linkCurr.getNext() != null) {
  18.                     linkCurr = linkCurr.getNext();
  19.                 }
  20.                 linkCurr.setNext(linkTemp);
  21.             }
  22.             size++;
  23.         }
  24.     }
  25.    
  26.     public void remove(Task task) {
  27.         if (task == null)
  28.             System.out.println("Can't delete empty task.");
  29.         else {
  30.             Link linkCurr = head;
  31.             if (head != null) {
  32.                 for (int i = 0; i < size; ++i) {
  33.                     if (task.equals(linkCurr.getData())){
  34.                         linkCurr.setNext(linkCurr.getNext().getNext());
  35.                         size--;
  36.                         break;
  37.                     }
  38.                     linkCurr = linkCurr.getNext();
  39.                 }
  40.             }
  41.         }
  42.     }
  43.    
  44.     public Task getTask(int index) {
  45.         Link linkCurr = null;
  46.        
  47.         if (head != null) {
  48.             linkCurr = head.getNext();
  49.             for (int i = 0; i < index; i++) {
  50.                 if (linkCurr.getNext() == null)
  51.                     return null;
  52.                 linkCurr = linkCurr.getNext();
  53.             }
  54.             return linkCurr.getData();
  55.         }
  56.         return null;
  57.     }
  58.  
  59.     public String toString() {
  60.         String output = "";
  61.        
  62.         if (head != null) {
  63.             Link linkCurr = head.getNext();
  64.             while (linkCurr != null) {
  65.                 output += PREFIX + linkCurr.getData().toString() + "\n";
  66.                 linkCurr = linkCurr.getNext();
  67.             }
  68.         }
  69.         return output;
  70.     }
  71.    
  72.    
  73.     private class Link { //inner class used to create logic of the LinkedList
  74.        
  75.         Link next;
  76.        
  77.         Task data;
  78.        
  79.         public Link(Task data) {
  80.             next = null;
  81.             this.data = data;          
  82.         }
  83.        
  84.         public Task getData() {
  85.             return data;
  86.         }
  87.        
  88.         public Link getNext() {
  89.             return next;
  90.         }
  91.        
  92.         public void setNext(Link next) {
  93.             this.next = next;
  94.         }
  95.     }
  96.  
  97.     public static void main(String[] args) {
  98.         Task task1 = new Task("TaskOne", 20);
  99.         task1.setActive(true);
  100.         Task task2 = new Task("TaskTwo", 40);
  101.         task2.setActive(true);
  102.         Task task3 = new Task("TaskThree", 70);
  103.         task3.setActive(true);
  104.         Task task4 = new Task("TaskFour", 50);
  105.         task4.setActive(true);
  106.         Task task5 = new Task("TaskFive", 10, 100, 20);
  107.         task5.setActive(true);
  108.        
  109.         LinkedTaskList List1 = new LinkedTaskList();
  110.         List1.add(task1);
  111.         List1.add(task2);
  112.         List1.add(task3);
  113.         List1.add(task4);
  114.         List1.add(task5);
  115.        
  116.         System.out.println(List1.size());
  117.         System.out.println("---------");
  118.         System.out.println(List1);
  119.         List1.remove(task2);                // IF I DO, WHAT HAPPENS IT THAT 'task3' IS ACTUALLY GETTING DELETED!!!
  120.         System.out.println("---------");
  121.         System.out.println(List1);
  122.         System.out.println(List1.size());
  123.     }
  124. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement