Collections Data Structure Java

public class FirstLastList {
  private Link first; // ref to first link
  private Link last; // ref to last link
  public FirstLastList() {
    first = null; 
    last = null;
  }
  public boolean isEmpty() {
    return first == null;
  }
  public void insertFirst(long dd) {
    Link newLink = new Link(dd); // make new link
    if (isEmpty()) 
      last = newLink; 
    newLink.next = first; 
    first = newLink; 
  }
  public void insertLast(long dd) {
    Link newLink = new Link(dd); 
    if (isEmpty()) 
      first = newLink; 
    else
      last.next = newLink; 
      last = newLink; 
  }
  public long deleteFirst(){ 
    long temp = first.dData;
    if (first.next == null) // if only one item
      last = null; 
    first = first.next; 
    return temp;
  }
  public void displayList() {
    System.out.print("List: ");
    Link current = first; 
    while (current != null)
    {
      current.displayLink(); 
      current = current.next;
    }
    System.out.println("");
  }
  public static void main(String[] args) { // make a new list
    FirstLastList theList = new FirstLastList();
    theList.insertFirst(22);
    theList.insertFirst(44);
    theList.insertLast(33);
    theList.insertLast(55);
    theList.displayList();
    theList.deleteFirst();
    theList.deleteFirst();
    theList.displayList();
  } 
  class Link {
    public long dData; 
  
    public Link next; 
  
    public Link(long d) {
      dData = d;
    }
  
    public void displayLink() {
      System.out.print(dData + " ");
    }
  }
}