title: Bubble Sort Manually a Linked List in Java
body: <p>This is my first question here. 
  I am trying to manually sort a linked list of integers in java and I can not figure out what is wrong with my code. Any suggestions? I don't get any error, however I still have my output unordered. I tried a few different ways, but nothing worked. I appreciate if anyone can help me with that. </p>
  
  <pre><code>public class Node {
  
      int data; 
      Node nextNode;
  
      public Node(int data) {
          this.data = data;
          this.nextNode = null;       
      }
  
      public int getData() {
          return this.data;
      }
  } // Node class
  
  
  public class DataLinkedList implements DataInterface {  
      private  Node head;
      private int size; 
  
      public DataLinkedList(){
          this.head = null;
          this.size = 0;
      }
  
      public void add(int data) {
          Node node = new Node(data);
          if (head == null) {
              head = node;
          } else {
              Node currentNode = head;
              while(currentNode.nextNode != null) {
                  currentNode = currentNode.nextNode;
              }
              currentNode.nextNode = node;
          }
          size++;     
      }
  
      public void sort() {
          if (size &gt; 1) {
              for (int i = 0; i &lt; size; i++ ) {
                  Node currentNode = head;
                  Node next = head.nextNode;
                  for (int j = 0; j &lt; size - 1; j++) {
                      if (currentNode.data &gt; next.data) {
                          Node temp = currentNode;
                          currentNode = next;
                          next = temp;
                      } 
                      currentNode = next;
                      next = next.nextNode;                   
                  } 
              }
          }
      }
  
      public int listSize() {     
          return size;
      }
  
      public void printData() {
          Node currentNode = head;
          while(currentNode != null) {
              int data = currentNode.getData();
              System.out.println(data);
              currentNode = currentNode.nextNode;
          }
      }
  
      public boolean isEmpty() {
          return size == 0;
      }
  } // DataInterface class
  
  public class DataApp {
  
      public static void main (String[]args) {
  
          DataLinkedList dll = new DataLinkedList();
  
          dll.add(8);
          dll.add(7);
          dll.add(6);
          dll.add(4);
          dll.add(3);
          dll.add(1);
  
          dll.sort();
          dll.printData();
          System.out.println(dll.listSize());
      }
  } // DataApp class
  </code></pre>